PowerShell 用 Test-NetConnection 实现网站延迟与可用性精准监测,支持 ICMP 连通性、DNS 解析、端口可达性(如443)及带时间戳的周期采样,并可导出 CSV 与生成统计报告。
用 powershell 统计特定网站的访问延迟与可用性,核心是利用 test-netconnection 获取结构化响应数据,而非仅依赖 ping 或浏览器体验。它能返回毫秒级响应时间、连通状态、dns 解析结果和端口可达性,适合写入脚本做周期性采集与分析。
基础延迟与连通性采集
直接测试目标域名或 IP 的 ICMP 连通性,并提取关键字段:
- 执行
Test-NetConnection www.example.com -InformationLevel Detailed,关注 PingSucceeded(布尔值)、ResponseTime(毫秒)、RemoteAddress(实际解析 IP,防 DNS 异常) - 若只需快速判断,用
-InformationLevel Quiet返回True/False,适合条件逻辑 - 避免只看“通/不通”,务必检查 RemoteAddress 是否符合预期——例如解析出 CDN 节点 IP 而非源站,可能影响后续端口测试准确性
带时间戳的连续采样
模拟真实用户访问节奏,记录多轮延迟波动:
- 用循环发起 10 次探测:
1..10 | ForEach-Object { Test-NetConnection api.contoso.com -WarningAction SilentlyContinue | Select-Object @{n='Timestamp';e={Get-Date}}, ResponseTime, PingSucceeded } - 加
-WarningAction SilentlyContinue屏蔽 DNS 失败等干扰警告,保证输出纯净 - 导出为 CSV 方便后续分析:
| Export-Csv .\latency_log.csv -Append -NoTypeInformation
端口级可用性验证(HTTP/HTTPS 关键端口)
网页打不开不等于网络不通,需单独验证服务端口:
- 测试 HTTPS 端口:
Test-NetConnection www.example.com -Port 443,重点看 TcpTestSucceeded - 设超时防卡死:
-TimeoutSec 3,尤其对跨公网链路更可靠 - 禁用 ICMP 探测(纯端口检查):
-InformationLevel Quiet,返回True表示端口可连,False表示拒绝、防火墙拦截或服务未监听
轻量巡检脚本模板(含日志与简单统计)
以下脚本每 5 分钟测一次,保存延迟均值、丢包率和最近失败时间:
- 将
www.example.com替换为目标地址,可同时测多个站点 - 运行后生成
availability_report.txt,含最小/最大/平均延迟、成功率百分比 - 失败时自动记录时间戳和错误原因(如 DNS 解析失败、TCP 连接超时)


















