none
Лимит времени на выполнение операции RRS feed

  • Вопрос

  • Всем привет

    Есть вопрос, возможно сможете помочь

    Есть скрипта которая ходит по сети с прашивает хосты на предмет их доступности через веб

    С хостами на которых вебсервер есть - все происходит быстро, а вот там где сервера нет, наблюдается задержка прежде чем команда вывалит ошибку

    Подскажите пожалуйста как сделать проверку хоста, или уменьшить время для ожидания ответа

    Скрипта выглядит как то так

    For ($i=1; $i -le "255"; $i++){
    $IP = "192.168.1.$i"
    $link = "http://$IP/xmldata"
    Try {
        [xml]$doc = (New-Object System.Net.WebClient -ErrorAction stop).DownloadString($link)
        Write-Host "$IP; $($doc.RIMP.HSI.SPN); $($doc.RIMP.HSI.SBSN); $($doc.RIMP.MP.PN); $($doc.RIMP.MP.FWRI)"
        Clear-Variable doc
        }
    Catch {
        Write-Host "$IP; N/A"
        }
    }

    19 января 2015 г. 14:40
    Модератор

Ответы

Все ответы

  • Используем Runspaces и функцию от Tome: https://powertoe.wordpress.com/2012/05/03/foreach-parallel/

    (1..254) | ForEach-Parallel -MaxThreads 32 {
    	$IP = "192.168.1.$_"
    	$link = "http://$IP/xmldata"
    	Try {
    			[xml]$doc = (New-Object System.Net.WebClient -ErrorAction stop).DownloadString($link)
    			Write-Host "$IP; $($doc.RIMP.HSI.SPN); $($doc.RIMP.HSI.SBSN); $($doc.RIMP.MP.PN); $($doc.RIMP.MP.FWRI)"
    			Clear-Variable doc
    		}
    	Catch {
    			Write-Host "$IP; N/A"
    		}
    }

    • Помечено в качестве ответа Vector BCOModerator 20 января 2015 г. 9:02
    19 января 2015 г. 15:29
    Отвечающий
  • Можно сделать две вещи: распараллелить опросы (обращаться, скажем, к 20 хостам одновременно) и контролировать процесс опроса и обрывать его, если, например, ответ не получен в течение 15 секунд. Если говорить о готовом решении, то я делал его очень давно и применительно к VBScript. Подробности - здесь, основной скрипт - здесь, поскольку в статье битая ссылка. Запускать из-под предложенного скрипта можно любой сценарий, в том числе и на PowerShell.

    19 января 2015 г. 15:39
    Модератор
  • спасибо, проверю завтра и отпишусь о результатах
    19 января 2015 г. 16:05
    Модератор