トップ回答者
Windwsサービスからのネットワークドライブ参照について

質問
-
C#でネットワークドライブへアクセスし、そのフォルダを監視するアプリケーションを作成したいのですが、
そのなかで、Windowsサービスからアプリケーションを実行してネットワークドライブにアクセスする方法を調査中です。
サービスの起動アカウントを、ログオンユーザに設定して実行したとき
UNCパスを指定すればネットワーク上の目的のフォルダにアクセスできるのですが、
直接ネットワークドライブを指定(W:)するとフォルダにアクセスできません。
WNetGetConnection関数を使用して、ネットワークドライブパスからUNCパスを取得する方法を試してみましたが、
アプリケーション単体で実行した場合、UNCパスをしました。
しかし、サービスから実行するとやはりエラーコードが返ってきます(1201)。
ちなみに参照するネットワークドライブは、ユーザ毎に指定できるものを目指しています。
サービスからネットワークドライブにアクセスする方法はありますでしょうか?
回答をよろしくお願いします。
回答
-
Windows サービスとログオン セッションとでは、セッションが別になっているのではないでしょうか。
ちなみに OS は何ですか?
WNetGetConnection の解説より抜粋:
Windows NT/Windows 2000:ネットワーク接続が Microsoft LAN Manager を使って行われたものである場合、
接続を行ったアプリケーションと異なるログオンセッションで実行中のアプリケーションがその接続に対応するローカル装置を指定してこの関数を呼び出すと、
関数は失敗します。戻り値は、ERROR_NOT_CONNECTED または ERROR_CONNECTION_UNAVAIL になります。- 回答としてマーク 高橋 春樹 2009年5月29日 7:36
すべての返信
-
Windows サービスとログオン セッションとでは、セッションが別になっているのではないでしょうか。
ちなみに OS は何ですか?
WNetGetConnection の解説より抜粋:
Windows NT/Windows 2000:ネットワーク接続が Microsoft LAN Manager を使って行われたものである場合、
接続を行ったアプリケーションと異なるログオンセッションで実行中のアプリケーションがその接続に対応するローカル装置を指定してこの関数を呼び出すと、
関数は失敗します。戻り値は、ERROR_NOT_CONNECTED または ERROR_CONNECTION_UNAVAIL になります。- 回答としてマーク 高橋 春樹 2009年5月29日 7:36