如何使用PowerShell工作流非常快速地ping多台计算机

时间:2019-02-18 09:54:49

标签: powershell-workflow

我想使用PowerShell工作流快速对多台计算机执行ping操作。但是对于我的团队来说,我的脚本运行缓慢,因为我的脚本需要11分钟才能ping通5000台PC。

我在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

0 个答案:

没有答案