我有停止和启动Windows服务的脚本。目前,它可以通过foreach循环正常运行;但是,这很耗时。我正在寻找一种同时触发所有事件的方法,而不是通过$ computer对象foreach循环并按1执行1。非常感谢
Foreach ($v in $computers)
{
if ($v.value -eq "true")
{
$computers = $v.Name.Split("_")
Write-Host "Processing " $computers[1]
StartOrStopService $computers[1] $StartOrStopService.ToLower()
}
}
最好的问候
答案 0 :(得分:0)
我建议使用作业使执行并行进行
Foreach ($v in $computers)
{
Invoke-Command -ComputerName . -ScriptBlock {
Param($v, $StartOrStopService)
if ($v.value -eq "true")
{
$computers = $v.Name.Split("_")
Write-Host "Processing " $v.Name
StartOrStopService $v.Name $StartOrStopService.ToLower()
}
} -AsJob -ArgumentList $v, $startorStopService
}
您可以使用Get-Job |如果想查看命令的输出,请执行Receive-Job。