6
有没有办法让下面的并行运行(多线程)?我有大约200台服务器需要运行,并且想知道是否有一种方法可以一次检查10台服务器,而不是每次只检测一台服务器...... WMI一次检查这个服务器的速度非常慢。如何添加多线程?
clear
Write-Host "Script to Check if Server is Alive and Simple WMI Check"
$servers = Get-Content -Path c:\Temp\Servers.txt
foreach($server in $servers)
{
if (Test-Connection -ComputerName $server -Quiet)
{
$wmi = (Get-WmiObject -Class Win32_ComputerSystem -ComputerName $server).Name
Write-Host "$server responds: WMI reports the name is: $wmi"
}
else
{
Write-Host "***$server ERROR - Not responding***"
}
}
试试这个[链接](http://blogs.msdn.com/b/powershell/archive/2011 /04/04/scaling-and-queuing-powershell-background-jobs.aspx) – jbockle 2013-05-03 13:41:52
非常感谢!!!!这是SOOOOO快速!非常感谢。 – lara400 2013-05-03 14:00:26
fyi对于那些不知道命令的人,ForEach-Object具有别名%和foreach。 $ _本质上也是指这个对象。它与'foreach($ server在$ servers中)'行非常相似,除了在jbockle的代码中,foreach循环只是开始工作(全部为200个),而不是在循环1内进行处理。 – BeowulfNode42 2013-11-25 07:29:35