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