test-netconnection 是 windows server 2012 r2+ 内置网络诊断工具,支持 dns 解析、icmp 连通性、tcp 端口检测及路由分析;tcptestsucceeded 为 true 表示端口可达,false 表示失败。
在 windows server(2012 r2 及更新版本)中,test-netconnection 是诊断网络连通性和端口可达性的首选内置工具。它无需安装额外组件,能同时验证 dns 解析、icmp 连通性、tcp 端口连接状态及路由路径。
基础端口连通性测试
最常用场景是确认远程服务端口是否开放且可建立 TCP 连接:
- 打开 PowerShell(普通用户权限即可,管理员权限仅在需完整路由诊断时建议)
- 运行命令:
Test-NetConnection -ComputerName 192.168.5.10 -Port 3389(将 IP 和端口号替换为实际目标) - 关键判断字段是 TcpTestSucceeded:值为
True表示端口响应正常;False表示连接失败——可能因服务未监听、防火墙拦截、网络不通或目标主机不可达
增强诊断与结果解析
添加 -InformationLevel Detailed 可获取更完整的上下文,便于定位问题环节:
- 执行:
$r = Test-NetConnection www.contoso.com -Port 443 -InformationLevel Detailed - 检查各阶段结果:
•$r.DnsLookupResolution—— 是否成功解析域名
•$r.PingSucceeded—— ICMP 是否可达(非必需,但辅助判断基础网络)
•$r.TcpTestSucceeded—— 最终端口连接结论
•$r.RemoteAddress—— 实际连接的 IP(含 IPv4/IPv6 选择情况)
批量端口扫描与结构化输出
对一台服务器快速检查多个关键端口(如 22、80、443、3389、5985),可用管道循环并生成清晰表格:
- 命令示例:
@(22,80,443,3389,5985) | ForEach-Object { $res = Test-NetConnection -ComputerName server01 -Port $_ -WarningAction SilentlyContinue; [PSCustomObject]@{Port=$_; Open=$res.TcpTestSucceeded} } - 输出为每行一个端口及其状态,适合人工快速浏览
- 如需存档分析,末尾追加:
| Export-Csv port-check.csv -NoTypeInformation
配合超时与常见服务别名简化操作
避免长时间等待,可设置连接超时;也可用预设服务名替代数字端口,提升可读性:
- 设置 1 秒超时:
Test-NetConnection mail.corp.local -Port 25 -TimeoutMsec 1000 - 使用服务别名(自动映射端口):
Test-NetConnection db01 -CommonTCPPort SMB(等效于 -Port 445)
支持别名包括:SMB、HTTP、RDP、PING











