我有一个带有foreach循环的脚本。它具有大约十二个功能,每个功能都从远程计算机的C $共享中收集信息(剪切文本文件,检查文件版本等)
但是,这需要一些时间,因为每台机器的数据都是一个接一个地收集的。 (有时会运行500多个输入)
希望通过并行执行将其放到运行空间中,但到目前为止,尚无示例可用。我对这个概念很陌生。
当前脚本的大纲 $ inputfile = c:\ temp \ computerlist.txt
功能1 功能2 功能3,等等
foreach周期 功能1 功能2 功能3
目前所有结果都已通过write-host写入屏幕。
答案 0 :(得分:0)
此示例并行ping多个服务器,因此您可以轻松地根据需要对其进行修改:
Range
答案 1 :(得分:0)
这将是并发的,总共需要10秒钟。如果您的计算机可以工作,则它可能是本地主机的三倍。
invoke-command comp1,comp2,comp3 { sleep 10; 'done' }
简单尝试api(线程)
$a = [PowerShell]::Create().AddScript{sleep 5;'a done'}
$b = [PowerShell]::Create().AddScript{sleep 5;'b done'}
$c = [PowerShell]::Create().AddScript{sleep 5;'c done'}
$r1 = $a.BeginInvoke(); $r2 = $b.BeginInvoke() $r3 = $c.BeginInvoke()
$a.EndInvoke($r1); $b.EndInvoke($r2); $c.EndInvoke($r3)
a done
b done
c done