You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Test-NetConnection命令TCP测试成功时是否执行ICMP测试的疑问

Test-NetConnection 命令ICMP测试触发逻辑解析

已知行为总结

  • 当TcpTestSucceeded为false时,命令必然执行ICMP Ping测试,返回PingSucceeded和PingReplyDetails字段——这是设计上为了在TCP连接失败时,辅助排查基础网络连通性问题。
  • 当TcpTestSucceeded为true时,ICMP测试是否执行,取决于以下几个核心因素:

TCP测试成功时触发ICMP测试的场景

  1. PowerShell版本差异

    • 旧版PowerShell(如5.1及更早):指定-port参数且TCP测试成功时,默认会同时执行ICMP Ping测试,返回完整的连通性结果。
    • 新版PowerShell(7.x系列):做了效率优化,仅当显式添加-InformationLevel Detailed参数时,才会在TCP测试成功后执行Ping测试并返回相关字段;未指定该参数时,默认只输出TCP测试核心信息,跳过Ping步骤。
  2. 系统网络权限与目标配置

    • 若执行命令的设备被防火墙规则禁止发送ICMP Echo请求(Ping),即便TCP测试成功,也无法执行Ping测试,自然不会返回相关字段。
    • 目标主机若拦截ICMP Echo请求(比如防火墙拒绝),命令会尝试执行Ping但返回PingSucceeded为false——这属于测试失败,而非跳过测试。
  3. 命令参数组合

    • 只要同时使用-port和-InformationLevel Detailed参数,无论TCP测试是否成功,都会强制执行ICMP Ping测试并返回完整结果。
    • 仅用-port参数未指定信息级别时,新版PowerShell默认精简输出,跳过Ping测试以提升速度。

验证示例(PowerShell 7.x环境)

  • 精简输出(无Ping测试):

    Test-NetConnection www.google.com -port 443
    

    仅返回ComputerName、RemoteAddress、RemotePort、TcpTestSucceeded等核心字段。

  • 完整输出(含Ping测试):

    Test-NetConnection www.google.com -port 443 -InformationLevel Detailed
    

    返回结果包含PingSucceeded、PingReplyDetails(RTT)等Ping相关字段。

内容的提问来源于stack exchange,提问作者S. Walker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 01:20:07