[英]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.