2014年9月16日火曜日

サービスで起動された実行ファイルから、ネットワークドライブが使えないのは何故?

こんにちは。今回は、近藤が担当します。
今回は、Windowsでネットワークドライブを扱うときの話です。

ネットワークドライブ上のファイルにアクセスする実行ファイルがあるとき、自分で実行ファイルを起動すると動作するのに、その実行ファイルをタスクスケジューラやサービス、運用ツールなどに登録して夜間などに起動すると、ネットワークドライブ上のファイルにアクセスできない、という質問が、まれにあります。

これは、Windowsのエクスプローラでネットワークドライブの割り当てを設定していることが原因である場合がほとんどです。



さて、直接起動するとネットワークドライブに問題なく接続できるのに、なぜサービス起動するとネットワークドライブに接続できなくなってしまうのでしょうか?

これは、ネットワークドライブの接続認証をいつ誰が行っているのか、を考えるとわかります。

ユーザがデスクトップにログインした状態のときにエクスプローラなどで作成したネットワークドライブを使用している場合、その接続認証はユーザと紐付いているので、そのネットワークドライブは、ユーザが対話形式のログオンをしている状態でないと使用することができません。そのため、実行ファイルを呼び出しているサービスのアカウントにAdministrators権限があったとしても、対話形式のログオンをしている状態でない限り、デスクトップにログインした状態で作成したネットワークドライブを使うことはできません。

では、どのようにすればサービス起動した実行ファイルでネットワークドライブを利用できるようになるでしょうか?
その設定は次回。



0 件のコメント:

コメントを投稿