次の方法で共有


サービスとリダイレクトされたドライブ

リモート リソースにアクセスする必要があるサービス (または別のセキュリティ コンテキストで実行されているプロセス) は、リソースにアクセスするために汎用名前付け規則 (UNC) 名を使用する必要があります。 サービスには、リソースにアクセスするための適切な特権が必要です。 サーバー側サービスで RPC 接続を使用する場合は、リモート サーバーで委任を有効にする必要があります。

ドライブ文字はシステムに対してグローバルではありません。 各ログオン セッションは、A から Z までのドライブ文字の独自のセットを受け取ります。したがって、リダイレクトされたドライブは、異なるユーザー アカウントで実行されているプロセス間で共有することはできません。 さらに、サービス (または独自のログオン セッション内で実行されているプロセス) は、別のログオン セッション内で確立されたドライブ文字にアクセスできません。

サービスは、マップされたドライブ文字を使用してローカルまたはネットワーク リソースに直接アクセスしたり、実行時に net use コマンドを呼び出してドライブ文字をマップしたりしないでください。 net use コマンドは、いくつかの理由で推奨されません。

  • ドライブ マッピングはログオン コンテキスト間に存在するため、アプリケーションが LocalService アカウントのコンテキストで実行されている場合、そのコンテキストで実行されている他のサービスがマップされたドライブにアクセスできる可能性があります。
  • サービスが net use コマンドに明示的な資格情報を提供する場合、それらの資格情報が誤ってサービスの境界外で共有される可能性があります。 代わりに、サービスは クライアントの偽装 を使用してユーザーを偽装する必要があります。
  • 同じコンテキストで実行されている複数のサービスが相互に干渉する可能性があります。 両方のサービスが明示的な ネットユース を実行し、同じ資格情報を同時に指定すると、1 つのサービスが "既に接続済み" エラーで失敗します。

さらに、サービスでは、マップされたドライブ文字を管理するために Windows ネットワーク関数を 使用しないでください。 WNet 関数は正常に返される場合がありますが、結果の動作は意図したとおりではありません。 システムがリダイレクトされたドライブを確立すると、ユーザーごとに格納されます。 リダイレクトされたドライブを管理できるのはユーザーだけです。 システムは、ユーザーのログオン セキュリティ識別子 (SID) に基づいて、リダイレクトされたドライブを追跡します。 ログオン SID は、ユーザーのログオン セッションの一意の識別子です。 1 人のユーザーは、システム上で複数の同時ログオン セッションを持つことができます。

サービスがユーザー アカウントで実行されるように構成されている場合、システムは常にユーザーの新しいログオン セッションを作成し、その新しいログオン セッションでサービスを開始します。 そのため、サービスは、ユーザーの他のセッション内で確立されたドライブ マッピングを管理できません。

Windows Server 2003: 複数のネットワーク インターフェイス (マルチホーム コンピューター) を持つコンピューターでは、UNC パスを使用してリモート サーバー メッセージ ブロック (SMB) サーバーに格納されているファイルにアクセスするときに、最大 60 秒の遅延が発生する可能性があります。