2017-11-27 12 views
0

リモートWindowsサーバーで正常に実行される次のコマンドがあります。任意のScriptBlockを使用したPowershell Invoke-Command

Invoke-Command -ComputerName $ComputerName -UseSSL -SessionOption $sessionOptions -Credential $cred -ScriptBlock 
{Start-Service "Test Service"} 

私は、特定のサーバー上で任意のコマンドを実行できるように、変数としてスクリプトブロックを渡ししようとしていますが、私は成功したのScriptBlock引数を渡すように見えることはできません。コードはエラーなしで実行されますが、リモートサービスは開始されません。

$ScriptBlock = Start-Service "Test Service" 

Invoke-Command -ComputerName $ComputerName -UseSSL -SessionOption $sessionOptions -Credential $cred -ScriptBlock 
{$args[0]} -ArgumentList $ScriptBlock 

答えて

1

あなた$ScriptBlock変数に割り当てるときに-ScriptBlockパラメータに引数としてそれを渡し、リテラルスクリプトブロックを定義するために{}でコードを囲み:

$ScriptBlock = { Start-Service "Test Service" } 

Invoke-Command -ScriptBlock $ScriptBlock -ComputerName $ComputerName -UseSSL -SessionOption $sessionOptions -Credential $cred 
+0

でした。私はそれを見落として信じられない、ありがとう! – PrestonM

関連する問題