加速PowerShell';s测试连接

加速PowerShell';s测试连接,powershell,Powershell,这是一个非常简单的平均ping计算器。它从for循环中获取ip地址,然后将结果放入多维数组中进行排序。我需要以某种方式加速这个脚本,因为它需要5分钟以上的时间来计算。我读过关于asjob的文章,但我不明白如何在我的脚本中暗示这一点。提前谢谢 $hostslist = @() $host_counter ++ for ($i = 100; $i -le 254; $i++){ $a = 192 $b = 168 $c = 99 if(Test-Connection

这是一个非常简单的平均ping计算器。它从for循环中获取ip地址,然后将结果放入多维数组中进行排序。我需要以某种方式加速这个脚本,因为它需要5分钟以上的时间来计算。我读过关于asjob的文章,但我不明白如何在我的脚本中暗示这一点。提前谢谢

$hostslist = @() 
$host_counter ++
for ($i = 100; $i -le 254; $i++){
    $a = 192
    $b = 168
    $c = 99
    if(Test-Connection -ComputerName "$a.$b.$c.$i" -Count 1 -Quiet){
        $hostslist += ,@($host_counter, "$a.$b.$c.$i" ,(Test-Connection -ComputerName "$a.$b.$c.$i" -Count 10  | measure-Object -Property ResponseTime -Average).average)
    }
}
$hosts_by_ping = $hostslist | sort-object @{Expression={$_[2]}; Ascending=$true}  
echo $hosts_by_ping

测试连接-计数10
在两次尝试之间总是有9秒的延迟。您可以在循环中执行此操作。

测试连接-计数10在两次尝试之间总是有9秒的延迟。您可以在循环中执行此操作。

[1]不要测试连接两次。[grin][2]停止使用
-Count 10
,因为这样会使每次计数增加一秒。[3] 尝试
-AsJob
参数。[4] 停止使用固有的慢速cmdlet&使用
[System.Net.NetworkInformation.Ping]::New().SendPingAsync()
东西。[1]不要测试连接两次。[grin][2]停止使用
-Count 10
,因为这样会使每次计数增加一秒。[3] 尝试
-AsJob
参数。[4] 停止使用固有的慢速cmdlet&使用
[System.Net.NetworkInformation.Ping]::New().SendPingAsync()
之类的东西。