带有任意 ScriptBlock 的 Powershell Invoke-Command

Powershell Invoke-Command with arbitrary ScriptBlock

我有以下命令在远程 Windows 服务器上成功执行。

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

在将代码分配给 $ScriptBlock 变量时将代码包含在 {} 中以定义脚本块文字,然后将其作为参数传递给 -ScriptBlock 参数:

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

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