PowerShell ISE运行Test-Connection提示找不到-TargetName参数怎么办
PowerShell Test-Connection参数报错解决方案
报错原因
Test-Connection: No parameter was found which corresponds to the parameter name "TargetName"
- 参数版本不兼容:
-TargetName是PowerShell 6.0及以上版本(即PowerShell Core/7+系列)为Test-Connection命令新增的参数,你当前使用的是Windows PowerShell 5.1及更早的内置版本,该版本中指定目标主机的对应参数为-ComputerName,因此触发参数不存在的报错。 - 脚本逻辑存在疏漏:你当前的代码未添加
-Quiet参数,Test-Connection默认返回的是连接状态结构化对象,而非布尔值,直接和字符串"true"对比会永远判定为失败,需要添加-Quiet参数让命令直接返回连通性的布尔结果。
修复方案
方案1:继续使用当前Windows PowerShell版本(5.1及以下)
将参数替换为-ComputerName,同时添加-Quiet参数:
$var1 = Test-Connection -ComputerName www.google.com -Quiet if($var1 -eq $true) { Write-Host Connection successful } else { Write-Host Connection failed }
方案2:升级到PowerShell 7+版本
可以保留-TargetName参数,同时布尔值判断可以简化写法:
$var1 = Test-Connection -TargetName www.google.com -Quiet if($var1) { Write-Host Connection successful } else { Write-Host Connection failed }
内容的提问来源于stack exchange,提问作者KekMuzaffer
相关产品推荐
相关产品推荐

