📝
Windowsサービスからの共有フォルダーへのアクセス
Windowsサービスからの共有フォルダーへのアクセス
Windowsのサービスから共有フォルダーへアクセスする必要があり、その時の備忘録です。
調査
アクセスするユーザーで「資格情報マネージャー コントロール パネル」の「Windows 資格情報」に登録すれば良いことがわかった。
問題
Windowsサービスの実行ユーザーは規定では「LocalSystem」ユーザーなので、ログインして「Windows 資格情報」を登録することはできない。
アクセス先
共有フォルダーパス:\share.example.com\share
対応
以下の手順で対応した。
- SysinternalsのPsToolsをダウンロードし、適当に解凍する。
- Windows資格権限をコマンドラインから追加するため、PowerShellを管理者権限で立ち上げ、
Install-Module -Name CredentialManager
を実行して資格権限のモジュールをインストールする。 - 以下を実行して、「LocalSystem」ユーザーでPowerShellコンソールを立ち上げる。
PsExec.exe -accepteula -u "NT AUTHORITY\System" -i -s powershell.exe
- 以下のコマンドを実行して「Windows 資格情報」に共有フォルダーへアクセスするユーザーとパスワードを登録する。
New-StoredCredential -Target "share.example.com" -UserName "user@example.com" -Password "password" -Persist Enterprise -Type DomainPassword
※参考
Discussion