繁体   English   中英

测试连接性能慢

[英]Test-Connection Performance Slow

我有一个设备列表,我想对其进行ping操作以查看它们是否处于活动状态。 如果它们处于活动状态(即使不是活动状态),我也想登录到文件。 因此,活动设备将转到一个文件,而“无法ping通”的设备将被写入另一文件。 我下面的脚本适用于较小的计算机样本,但是当我添加完整列表时,脚本的“测试连接”部分需要几个小时才能完成(大约8,000台设备)。 是否可以通过并行运行命令来提高性能? 在我的搜索中,我遇到了David Wyatt => TestConnectionAsync的包装函数,但是我不确定如何将结果分为两个文件。 任何帮助,将不胜感激。

码:

ForEach ($PC in $Computer_List) {
  If (Test-Connection -ComputerName $PC -Quiet -Count 1) {
    Add-Content -value $PC -Path "$UPpath"
  } Else {
    Add-Content -Value $PC -Path "$DOWNpath"
  }
}

Test-ConnectionAsync的输出使此操作非常简单:

当指定Test-ConnectionAsync的-Quiet开关时,它将返回带有属性“ ComputerName”和“ Success”的PSCustomObjects的集合。 成功是您从Test-Connection -Quiet获得的布尔值; PSCustomObject仅允许您将结果与目标地址相关联。

因此,您要做的就是:

  1. Ping所有计算机并捕获输出
  2. 查看Success属性,看看是否应该将其放在一个文件或另一个文件中

# 1. Gather ping results
$TestResults = $ComputerList | Test-ConnectionAsync -Quiet

# 2. Loop through results and look at Success
foreach($Result in $TestResults){
    $FilePath = if($Result.Success){
        $UPpath
    } else {
        $DOWNpath
    }
    Add-Content -Path $FilePath -Value $Result.ComputerName
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM