2

展開の自動化の一環として、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」を指定しています。私の理解では、これにより、私が渡しているユーザー資格情報を偽装しながらリモート プロセスが開始されるということでした。

特定のユーザーの資格情報を使用して、リモート マシンで実行可能ファイルを実行する方法を教えてください。

4

1 に答える 1

0

ダブルホップ認証の問題があるように見えるので、認証New-PSSessionで とを使用してみてください。Invoke-CommandCredSSP

以下の質問に対する私の回答を確認して、CredSSP のセットアップと使用方法を確認してください。かなり簡単です。

PowerShell 2.0 を使用してリモート コンピューターでバッチ ファイルを実行する

于 2013-10-02T09:19:08.390 に答える