gpt4 book ai didi

powershell - ScriptBlock 中的多个命令

转载 作者:行者123 更新时间:2023-12-04 19:00:21 28 4
gpt4 key购买 nike

我在 Scriptblock 参数中运行多个命令时遇到问题。所有文档都指向使用分号来分隔 cmdlet。使用通过分号分隔 cmdlet 的相同方法在我的本地机器上工作,但不能通过 invoke-command 在远程机器上工作。

例如,下面的代码只会返回 Get-Service 的结果,而不是 Get-Process .

Invoke-Command -ComputerName cas-bkupexec -ScriptBlock { Get-Service;  Get-Process }

如何成功运行两个命令并接收每个命令的输出?

最佳答案

我能够重现这个..它只返回第一个语句。它不是分号,如果你使用 like 中断,它会做同样的事情。

这些选项有效:

Invoke-Command -ComputerName computer -ScriptBlock {
(Get-Service)
Get-Process
}

或者奇怪的是:
Invoke-Command -ComputerName computer -ScriptBlock {
& {
Get-Service
Get-Process
}
}

由于将其中之一包装在 ( ) 中我觉得这一定是管道的一些怪癖,但我还没有弄清楚它在做什么。

更新:

在阅读了您关于源计算机正在运行 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

不是这里的每个组合,但它似乎真的可能是从 v5 到 v2 的错误。

关于powershell - ScriptBlock 中的多个命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38705320/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com