【发布时间】:2014-12-08 07:36:19
【问题描述】:
我有一个脚本,它检查不同服务器上的某些服务是否启动,如果没有,脚本应该启动该服务。
问题是,它不会并行启动服务,而是等待每个服务启动。
代码:
$server_list = Get-Content -path D:\Path\list_of_servers.txt
$server_list | foreach {
(Get-Service -Name '*Service Name*' -computername $_) | Where-Object {$_.status -eq "Stopped"} | Set-Service -Status Running
}
我知道这是由于脚本的编写方式,但也许你们中的一些人有什么建议可以让它变得更好?
干杯!
【问题讨论】:
-
您运行的是哪个版本的 Powershell?对于 V3 和 V4,您可以使用
foreach -parallel -
你看过使用
Start-Job吗? -
@MickyBalladelli 遗憾的是,我们正在使用 V2
-
@ST8Z6FR57ABE6A8RE9UF 不,我会检查一下。
-
我在答案中添加了一个工作示例。