我正在使用"invoke-command"在远程计算机上执行脚本.
invoke-command -computername <server_name> -scriptblock {command to execute the script}
Run Code Online (Sandbox Code Playgroud)
当有任何错误时,我的脚本返回"-1".所以,我想通过检查返回代码来确保脚本已成功执行.
我尝试如下.
$code = invoke-command -computername ....
Run Code Online (Sandbox Code Playgroud)
但它什么也没有回报.
不Invoke-command捕获脚本块的返回码?
还有其他方法可以解决这个问题吗?
Joe*_*oey 10
我想如果你在另一台服务器上以这种方式运行命令,你就无法获得脚本的返回代码.这是因为Invoke-Command只需在远程计算机上运行一个命令,可能在一个临时会话中,您无法再次连接到该会话.
但是,您可以在远程计算机上创建会话并在该会话中调用脚本.之后,您可以再次检查该会话中的返回值.所以有些东西:
$s = New-PSSession -ComputerName <server_name>
Invoke-Command -Session $s -ScriptBlock { ... }
Invoke-Command -Session $s -ScriptBlock { $? }
Run Code Online (Sandbox Code Playgroud)
可能有用.这样,您可以访问Invoke-Command与远程计算机上的第一个相同的状态和变量.
也Invoke-Command不太可能通过远程命令的返回值.你怎么知道Invoke-Command自己失败了?
ETA:好的,我误读了你的"返回代码".我假设你的意思$?.无论如何,根据文档,您可以在远程计算机上运行脚本,如下所示:
要在远程计算机上运行本地脚本,请使用
FilePath参数ofInvoke-Command.例如,以下命令
Sample.ps1在S1和S2计算机上运行脚本:Run Code Online (Sandbox Code Playgroud)invoke-command -computername S1, S2 -filepath C:\Test\Sample.ps1脚本的结果将返回到本地计算机.您不需要复制任何文件.
| 归档时间: |
|
| 查看次数: |
36725 次 |
| 最近记录: |