带有任意 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
我有以下命令在远程 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