Test-NetConnection扫描端口135时表现异常的技术咨询
解答
- 这种现象完全正常
Test-NetConnection针对不同端口的检测逻辑存在差异:135是RPC服务的默认端口,该命令对它的检测流程和普通TCP端口不同,因此不会返回PingSucceeded属性。- 你统计出的开放端口少一个,是因为脚本的判断逻辑依赖了
PingSucceeded,导致135端口被遗漏。判断端口是否开放的核心依据应该是TcpTestSucceeded属性,所有端口的检测结果都会包含这个属性,用它来判断才准确。
给你一个修正后的脚本示例:
# 替换<目标主机>为实际目标IP或主机名 130..140 | ForEach-Object { $connResult = Test-NetConnection -ComputerName <目标主机> -Port $_ if ($connResult.TcpTestSucceeded) { Write-Output "开放端口: $_" } }
如果想要更简洁的写法,可以用:
130..140 | Where-Object { (Test-NetConnection -ComputerName <目标主机> -Port $_ -InformationLevel Quiet).TcpTestSucceeded }
内容的提问来源于stack exchange,提问作者Jon A
相关产品推荐
相关产品推荐

