ps1在远程计算机上。我正在接受其他一些人的命令。
使用以下脚本---
之间有什么区别吗?invoke-command -computer $MachineName -command { C:\hello.ps1 }
invoke-command -computer $MachineName -scriptblock{ C:\hello.ps1 }
此外,我将使用 for 循环用于具有相同脚本名称但具有仅位于每台远程计算机上的diff工作序列的多台机器。想要了解第二台机器的执行只有在第一次完成时才会进行。正确吗?
答案 0 :(得分:3)
执行没有区别。 -command
仅仅是scriptblock
的别名。您可以通过获取invoke-command
命令
(Get-Command -Name Invoke-Command).Parameters.Values | select name, aliases
是的,执行是顺序的。在命令在第一台机器上完成后,您指定的命令将在第二台机器上执行。
这些命令同步运行(一次一个)。当命令 完成后,所有计算机的命令输出都是 保存在$ version变量中。输出包括的名称 数据源自的计算机。
答案 1 :(得分:0)
回答第二个问题:Invoke-Command并行工作。它将脚本块中提到的内容并行运行到所有机器上。默认情况下,powershell将同时与32台计算机通信。如果您指定了更多,它将排队,以便当一台计算机完成时,下一个计算机将开始。但是,我相信,您可以通过指定Invoke-Command的-throttlelimit参数来增加该数量。