我想知道哪个是最佳做法,考虑这两个例子可能会有效。使用内置的帮助示例,我编写了一个脚本来在远程服务器上安装Windows功能。这是我的代码:
$servers = ('server1', 'server2', 'server3', 'server4')
ForEach ($server in $servers) {
Install-WindowsFeature -Name Desktop-Experience -ComputerName $server -IncludeAllSubFeature -IncludeManagementTools -Restart
}
以上是首选还是我应该在“Invoke-Command”块中包装“Install-WindowsFeature ...”,如下所示?
Invoke-Command -ComputerName server1, server2, server3, server4 -command {
Install-WindowsFeature -Name Desktop-Experience -ComputerName $server -IncludeAllSubFeature -IncludeManagementTools -Restart
}
感谢您的见解!
答案 0 :(得分:0)
我个人会使用后者(直接调用Install-WindowsFeature -ComputerName $server
而不是单独Invoke-Command
),在这种情况下,原因如下:
Invoke-Command
的脚本块中。这完全有可能,但需要更多的工作。Invoke-Command
没有任何好处,因为您在远程计算机上运行单个命令(而不是使用-ComputerName
参数运行多个命令而不是在脚本中运行多个命令块)。