[解決済み】ネットワークドライブをサービスで使用するようにマッピングする
質問
ある Windows サービスが、マップされたネットワークドライブと UNC パスを必要とするコードを使用しているとします。サービスが開始されたときに、そのサービスのセッションでドライブマッピングを利用できるようにするにはどうしたらよいでしょうか。サービス・ユーザーとしてログインし、永続的なマッピングを作成しても、実際のサービスのコンテキストでマッピングを確立することはできません。
解決方法を教えてください。
セッション/ドライブアクセスの問題とは別に、永続的なドライブマッピングは対話型ログオン時にのみ復元されますが、これは通常サービスが実行しません。
ヘルパープロセスのアプローチは非常にシンプルです。ドライブをマッピングする新しいサービスを作成し、「本物の」サービスを開始するだけです。これに関して全く些細なことではないのは
-
ヘルパーサービスは、適切な SCM コマンド (開始/停止など) をすべて実サービスに渡す必要があります。もし実サービスがカスタムの SCM コマンドを受け付けるなら、それも忘れずに渡してください(UNC パスをエキゾチックと見なすサービスがそのようなコマンドを使うとは思っていませんが......)。
-
クレデンシャルに関しては、少し厄介なことになるかもしれません。実サービスが通常のユーザーアカウントで実行されている場合、ヘルパーサービスもそのアカウントで実行することができ、そのアカウントがネットワーク共有に適切にアクセスできる限り、すべて問題ないはずです。実際のサービスがLOCALSYSTEMまたはそのようなものとして実行されたときにのみ動作する場合、ネットワークドライブをまったく「見る」ことができないか、または動作させるためにいくつかのクレデンシャル・ジャグリングを必要とするため、事態はより面白くなります。
関連
-
[解決済み] CreateProcess でエラー 193 (%1 は有効な Win32 アプリではありません) が発生する理由
-
[解決済み] xcopyがAccess Deniedと表示される原因は何ですか?
-
[解決済み] Powershell」が内部コマンド、外部コマンド、操作可能なプログラム、またはバッチファイルとして認識されない
-
[解決済み] mingw-w64スレッド:PosixとWin32の比較
-
[解決済み] Windowsでgl3wを設定するには?
-
[解決済み] Windows用の堅牢で最小限のインストーラーを作成するには?[クローズド]
-
[解決済み] セットの/pはどういう意味ですか?
-
[解決済み] Windows CLIでタイムスタンプを使ったPingを打つ
-
[解決済み] PowerShellのWrite-HostとWrite-Outputの違い?
-
[解決済み] ファイルが存在しない場合、Windowsサービスをアンインストールするにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Xcopyのエラーメッセージ「Sharing Violation」が誤っている。
-
[解決済み] 依存関係ウォーカー:DLLが見つからない
-
[解決済み] npm windows install globallyでnpm ERR!余計なお世話になる。
-
[解決済み] 0|%0とは何ですか、どのように機能しますか?
-
[解決済み] Sudoが見つかりません。npm install を試しています。
-
Win7でopensslを使用すると「ランダムな状態」を書き込めない問題
-
.NET フレームワークのインストールに失敗しました 0x800c0006 解決方法
-
[解決済み] バッチプログラムでのechoコマンドの動作について
-
[解決済み] Windowsからリモートサーバーへscpでローカルファイルをコピーする [終了しました]。
-
[解決済み] Windows CLIでタイムスタンプを使ったPingを打つ