Войти

Показать полную графическую версию : [решено] Test-NetConnection разное время ответа от хостов


Elven
16-05-2018, 14:53
есть скрипт

$path=E:\
Get-Content -Path 'E:\hosts.txt' | foreach {
Test-NetConnection $_ | ForEach-Object {
$bl=Get-Date -Format "yyyy.MM.dd HH:mm:ss"
Write-Output $bl $_.PingSucceeded --------------------} | Out-File $path\$_.txt
}
И все в нем хорошо кроме одного: большая часть хостов опрашивается практически мгновенно, а вот некоторые залипают от двух до десяти секунд (при том что все равно возвращают true). Все хосты в одной подсети, на почти всех одинаковая операционная система. Ну и естественно если хост недоступен об этом можно узнать секунд через двадцать.
Теперь собственно вопросы:
1. Как решить вопрос с тормозами с доступными хостами?
2. Как заставить скрипт не ждать треть минуты ответа от недоступного?
3. Как распараллелить процесс?

з.ы. пробовал колупать в сторону System.Net.Sockets.TCPClient -ArgumentList host,port , но мало знаю чтобы обойтись без указания порта.

Kazun
16-05-2018, 18:48
https://gallery.technet.microsoft.com/scriptcenter/Asynchronous-Network-Ping-abdf01aa

PS > Test-ConnectionAsync google.ru,ya.ru,111erz.ru,12313.com

Computername IPAddress Result
------------ --------- ------
google.ru 74.125.131.94 Success
ya.ru 87.250.250.242 Success
111erz.ru No such host is known
12313.com 0.0.0.0 TimedOut

PS > measure-command {Test-ConnectionAsync google.ru,ya.ru,111erz.ru,12313.com}


Days : 0
Hours : 0
Minutes : 0
Seconds : 1
Milliseconds : 944
Ticks : 19443235
TotalDays : 2.2503744212963E-05
TotalHours : 0.000540089861111111
TotalMinutes : 0.0324053916666667
TotalSeconds : 1.9443235
TotalMilliseconds : 1944.3235

PS > Test-ConnectionAsync (Get-Content -Path 'E:\hosts.txt')




© OSzone.net 2001-2012