Ale*_*rds 5 powershell invoke-command
我在Scriptblock参数中运行多个命令时遇到问题.所有文档都指向使用分号在cmdlet之间进行分隔.使用通过分号分隔cmdlet的相同方法在我的本地计算机上工作,但不能通过invoke-command在远程计算机上工作.
例如,下面的代码只返回结果Get-Service,而不是Get-Process.
Invoke-Command -ComputerName cas-bkupexec -ScriptBlock { Get-Service; Get-Process }
Run Code Online (Sandbox Code Playgroud)
如何实现两个命令成功运行并获得每个命令的输出所需的结果?
我能够重现这个..它只返回第一个语句。它不是分号,如果你使用 like 中断,它会做同样的事情。
这些选项有效:
Invoke-Command -ComputerName computer -ScriptBlock {
(Get-Service)
Get-Process
}
Run Code Online (Sandbox Code Playgroud)
或者奇怪的是:
Invoke-Command -ComputerName computer -ScriptBlock {
& {
Get-Service
Get-Process
}
}
Run Code Online (Sandbox Code Playgroud)
自从将其中一个包装在( )作品中后,我觉得这一定是管道的一些怪癖,但我还无法确切地弄清楚它在做什么。
在阅读了您关于源计算机正在运行 v5 和远程 v2 的评论后,我意识到我的测试也是如此。
当我远离 v5 时,问题就消失了。
远程:
v2 -> v5: no issue
v2 -> itself: no issue
v2 -> other v2: no issue
v3 -> v2: no issue
v3 -> v5: no issue
v3 -> itself: no issue
v4 -> v2: no issue
v4 -> v3: no issue
v4 -> itself: no issue
v4 -> v5: no issue
Run Code Online (Sandbox Code Playgroud)
不是这里的每个组合,但它似乎真的可能是从 v5 到 v2 的错误。
| 归档时间: |
|
| 查看次数: |
12470 次 |
| 最近记录: |