展開の自動化の一環として、powershell を使用してリモート マシンで実行可能ファイルを実行しようとしています。実行可能ファイルは、適切なデータベースに接続して作業できるように、特定のユーザーとして実行する必要があります。
たとえば、Powershell スクリプトは Machine1 でユーザー "Org\TFSUser" として実行されています。「Devel\BuildServices」ユーザーとして Machine2 で実行可能ファイルを実行する必要があります。以下に示すように、Invoke-WmiMethod コマンドレットを使用して、リモート サーバーで実行可能ファイルを起動しようとしています。これは、リモート マシンで実行可能ファイルを実行するが、匿名ユーザー ログインを使用するという点で機能しているようです。ログに表示されるエラーはSystem.Data.SqlClient.SqlException: Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'.
$username = "devel\BuildServices"
$password = cat Deploy\SecurePasswords\PasswordForBuildServicesAsSecureString.txt | convertto-securestring
$cred = new-object -typename System.Management.Automation.PSCredential -argumentlist $username, $password
Invoke-WmiMethod -class Win32_process -name Create -ArgumentList ("C:\TeamCityDeployments\Importer\Importer.exe -pFile:C:\TeamCityDeployments\Importer\alphaParams.txt >> importer.log") -ComputerName "Machine2.devel" -Impersonation 3 -EnableAllPrivileges -Credential $cred
プロンプトを表示せずにパスワードを使用して資格情報オブジェクトを構築するために、ここで指定されている安全な文字列を使用しています。
Invoke-WmiMethod では、ここで指定されているように、パラメーター「-Impersonation 3」を指定しています。私の理解では、これにより、私が渡しているユーザー資格情報を偽装しながらリモート プロセスが開始されるということでした。
特定のユーザーの資格情報を使用して、リモート マシンで実行可能ファイルを実行する方法を教えてください。