Как быстро пинговать несколько компьютеров с помощью рабочего процесса PowerShell - PullRequest
0 голосов
/ 18 февраля 2019

Я хочу очень быстро пропинговать несколько компьютеров с помощью рабочего процесса PowerShell.Но для моей команды мой сценарий медленный, потому что мой сценарий занимает 11 минут для проверки связи с 5000 ПК.

Я на Windows Server 2012 R2.

workflow OnlinePC {
    Param ($srv)
    $collectionWithItems = New-Object System.Collections.ArrayList

    foreach -parallel -throttlelimit 5500 ($pc in $srv) {
        $workflow:collectionWithItems += InlineScript {
            $req = Test-Connection -ComputerName $using:pc.Name -Count 1 -BufferSize 1 -ErrorAction SilentlyContinue
            if ($req) {
                $using:pc | Add-Member -MemberType NoteProperty -Name "Online" -Value "Yes"
            } else {
                $using:pc | Add-Member -MemberType NoteProperty -Name "Online" -Value "No"
            }
            $using:pc
        }    
    }
    return $collectionWithItems
}

OnlinePC -svc $PC
...