首页 > 解决方案 > 在多个服务器上并行运行 powershell 脚本

问题描述

可能是一个重复的问题,但由于我仍在学习,因此需要一些中肯的答案。我想在所有远程服务器上同时运行 PowerShell 脚本来安装应用程序。我尝试了以下 cmdlet,但它一个接一个地执行,并且还想知道状态或作业输出文件。任何帮助深表感谢。谢谢

$servers = Get-Content "C:\Dumps\Scripts\servers.txt"

foreach ($server in $servers) {
    Invoke-Command -ComputerName $server -Filepath C:\Dumps\Scripts\CompleteSilent.ps1
}

标签: powershellinvoke-command

解决方案


只需$Servers用作-ComputerName参数。Invoke-Command将并行运行它们。

您可以使用参数调整并行度上的 Throttle -Throttle

Invoke-Command -ComputerName $Servers -Filepath C:\Dumps\Scripts\CompleteSilent.ps1

注意:如果有返回对象和/或屏幕回声,它们可能返回无序。可以处理,但如果这是安装,您可能不会遇到该特定问题。


推荐阅读