経験則として、Windowsサービスはマップされたドライブにアクセスできないため、代わりにUNCパスを使用する必要があります。
これを回避して、Windowsサービスがマップされたドライブにアクセスできるようにする方法があると確信していますが、どこにも見つかりません。
私の特定のケースは、Windows2008サーバーでTomcat7を実行している場合です。
マップされたディレクトリまたはUNCパスを使用する代わりに、シンボリックリンクを使用することもできます。
NTFSシンボリックリンク(symlinks)はUNCパスを参照できますが、要求された場所へのリダイレクトがないという点でショートカットとは異なります。次のようにシンボリックリンクを作成すると...
mklink /D C:\myLink \\127.0.0.1\c$
...次にC:\myLink
を開くと、現在のフォルダのアドレスはC:\myLink
ではなく\\127.0.0.1\c$
になります。これは、myLinkがシンボリックリンクではなくショートカットの場合に得られるものです。 。これは、アプリケーションにUNCパスとの互換性の問題がある場合に重要です。
さらに、シンボリックリンクはファイルシステムに存在し、平均マッピングされたドライブが必要とするため(通常は自動化)、Windowsサービスで利用できるため、ログオン後に再作成する必要はありません。
私はうまく機能しているように見えるこの問題の解決策を見つけました: https://stackoverflow.com/a/7867064/669645
私が取った手順:
Net Use z: \servername\sharedfolder /persistent:yes
を含むbatファイルを作成します注:ドライブは「Disconnected Network Drive(Z:)」と表示されますが、ログインしているすべてのユーザーとWindowsサービスにアクセス可能