8

ドライブ文字にマップされたネットワーク共有フォルダーがあります。これには、Windowsエクスプローラー、コマンドプロンプト、およびWinFormsアプリケーションから問題なくアクセスできます。また、UNCパスを使用してWindowsサービスからアクセスできます。

ただし、Windowsサービスからマップされたドライブ文字を使用してこのネットワークの場所にアクセスしようとすると、アクセスに失敗します。Windowsサービスは、個人の「ログオン」アカウントの資格情報を使用するように構成されています。これは、上記のすべての場合で同じです。私は管理者です。

多くの顧客サイトはネットワーク共有にドライブ文字を使用していますが、これを常に制御して、代わりにUNCパスを指定するように強制することはできません。Windowsサービスからのドライブ文字を使用してネットワーク共有にアクセスできる必要があります。

ドライブ文字にマップされているネットワーク共有フォルダーにアクセスできるように、Windowsサービスをセットアップするには何をする必要がありますか?私のWindowsサービスはC#で書かれています。

4

3 に答える 3

10

ごめん; Windows サービスからマップされたドライブにアクセスすることはできません。Sheng が提案したように、UI プロセスを使用してマップされたドライブから UNC パスを取得し、これをサービスに渡すことができます。サービスは UNC パスを使用する必要があります。

于 2010-06-23T02:50:35.857 に答える
4

マップされたドライブは、セッション オブジェクトごとです。したがって、各インタラクティブ セッションには独自のマッピングがあり、サービス セッションには別のドライブ マッピングがあります。マップされたドライブの正しい UNC パスを取得するには、正しいセッションで WNetGetConnection を呼び出す必要があります。

WCF、名前付きパイプ、ソケットなど、任意のセッション間通信方法を使用して要求を開始し、サービスで結果を取得できます。

于 2010-06-23T02:22:25.540 に答える