簡體   English   中英

PowerShell 測試連接返回設備已關閉,但未關閉

[英]PowerShell Test-Connection is returning that a device is down when it is not

我在 PowerShell 中使用以下代碼來 ping 多個設備並返回它們是啟動還是關閉。

$Output= @()
$names = Get-content "C:\HHM\hnames.txt"
foreach ($name in $names){
  if (Test-Connection -ComputerName $name -Count 4 -Delay 2 -ErrorAction SilentlyContinue){
   $Output+= "$name,up"
   Write-Host "$Name,up"
  }
  else{
    $Output+= "$name,down"
    Write-Host "$Name,down"
  }
}
$Output | Out-file "C:\HHM\result.csv"

當我檢查一些列為關閉的設備時,它們實際上已經啟動。 鑒於這些設備的性質,我不認為連接是間歇性的,並且在運行代碼時連接實際上已關閉。 其他任何測試連接參數是否可能對此有所幫助? 我已經使用過 Count 4 和 Delay 2,但我不確定其他參數是否能解決問題。

編輯 - 澄清一下,我大部分時間都得到正確的向上/向下狀態。 每隔一段時間,代碼會返回一個設備已關閉,但是當我 go 檢查設備時,我有一個連接。

這可能不是您的問題,但您沒有指定設備是否具有 static IP 或動態 IP。 如果是動態的,我建議在運行腳本之前始終運行ipconfig /flushdns 我無法告訴您有多少次我認為某個設備已關閉,或者認為我正在連接到一個設備卻發現我正在連接到另一個設備。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM