1

多くのフォーラムで、ユーザーがログオンしていないため、マップされたドライブにサービスからアクセスできないことを読みました。

質問1)あるアカウントとして、ログオンとしてサービスを作成しようとしましたが、そのアカウントにネットワークドライブをマッピングしました。サービスはまだアクセスできません。なんで?

質問2)同じサービスから、別のプロセスを呼び出します。プロセスはどのユーザーアカウントで実行されますか?

ありがとう

4

3 に答える 3

4

1) 代わりに UNC パスを使用すると、マップされたドライブ文字にアクセスする必要がなくなります。同じアカウントで実行している場合でもアクセスできない理由については、実際のコードを見ないと断言できません。

2) プロセスの起動方法によって異なります。ShellExecute()またはを使用するCreateProcess()と、呼び出しスレッドのユーザー アカウントで実行されます。、、またはを使用するCreateProcessAsUser()と、渡したユーザー アカウントで実行されます。CreateProcessWithLogonW()CreateProcessWithTokenW()

于 2010-05-04T06:52:14.260 に答える
1

サービス モードで JBoss を実行しているときに同様の問題に直面しました。「ログオン:」オプションをドライブをマップした同じユーザーに変更した後でもサービスを実行しても、Java コードはマップされたドライブにアクセスできませんでした。

次に、同じサービスを使用してドライブをマップできれば、それが機能するはずであることがわかりました。

そして最後に、service.bat ファイルの先頭に単純なコマンドを追加するだけで問題が解決しました。

net use x: \\SERVERNAME\SHARENAME
于 2012-12-03T12:53:02.293 に答える
0

マップされたドライブはユーザーごとのリソースであるため、サービスは XP 以降ではマップされたドライブにアクセスできません。ドライブします。

サービスがドライブ自体をマップする場合があります。

于 2010-05-04T07:29:05.733 に答える