19 lines
		
	
	
		
			No EOL
		
	
	
		
			995 B
		
	
	
	
		
			PowerShell
		
	
	
	
	
	
			
		
		
	
	
			19 lines
		
	
	
		
			No EOL
		
	
	
		
			995 B
		
	
	
	
		
			PowerShell
		
	
	
	
	
	
| function Start-PingThread ($Network) {
 | |
| $RNetwork = $Network -replace "\.\d{1,3}$","."
 | |
| foreach ($4 in 1..254) {
 | |
| $ip = $RNetwork+$4
 | |
| # создаем задания, забираем 3-ю строку вывода и добавляем к выводу ip-адрес:
 | |
| (Start-ThreadJob {"$using:ip : "+(ping -n 1 -w 50 $using:ip)[2]}) | Out-Null
 | |
| }
 | |
| while ($True){
 | |
| $status_job = (Get-Job).State[-1] # забираем статус последнего задания
 | |
| if ($status_job -like "Completed"){ # проверяем на выполнение (задания выполняются по очереди сверху вниз)
 | |
| $ping_out = Get-Job | Receive-Job # если выполнен, забираем вывод всех заданий
 | |
| Get-Job | Remove-Job -Force # удаляем задания
 | |
| $ping_out
 | |
| break # завершаем цикл
 | |
| }}
 | |
| }
 | |
| 
 | |
| # Start-PingThread -Network 192.168.3.0
 | |
| # (Measure-Command {Start-PingThread -Network 192.168.3.0}).TotalSeconds # 24 Seconds |