ZetCode

PowerShell Test-NetConnection

最后修改:2025 年 2 月 15 日

在本文中,我们将介绍PowerShell中的Test-NetConnection cmdlet。此cmdlet提供网络连接的诊断信息。它以更强大的功能取代了ping和tracert等传统工具。

网络连接基础知识

网络连接测试对于故障排除至关重要。Test-NetConnection cmdlet检查远程主机是否可达。它可以测试TCP端口,执行路由跟踪,并测量延迟。此cmdlet在PowerShell 4.0及更高版本中可用。

基本ping测试

最简单的用法是测试到主机的基本ICMP连接。这类似于传统的ping命令,但提供了更详细的输出。该cmdlet返回成功/失败状态和延迟信息。默认情况下,它会测试四次连接。

network1.ps1
Test-NetConnection -ComputerName "google.com"

此命令测试到google.com的连接。输出显示主机是否可达以及平均延迟。它还显示远程IP地址。

PS C:\> .\network1.ps1

ComputerName           : google.com
RemoteAddress          : 172.217.16.206
InterfaceAlias         : Ethernet
SourceAddress          : 192.168.1.100
PingSucceeded          : True
PingReplyDetails (RTT) : 12 ms

测试特定的TCP端口

您可以测试远程主机上的特定TCP端口是否打开。这对于检查服务可用性很有用。使用带有端口号的-Port参数。该cmdlet尝试与指定端口建立TCP连接。

network2.ps1
Test-NetConnection -ComputerName "example.com" -Port 80

此命令测试example.com上的80端口(HTTP)是否打开。输出显示连接是否成功以及所花费的时间。这有助于验证Web服务器的可用性。

详细的路由跟踪

该cmdlet可以执行类似于tracert的路由跟踪。这显示了到目标的网络路径。使用-TraceRoute参数启用此功能。路径中的每个跃点都显示其延迟。这有助于识别网络瓶颈。

network3.ps1
Test-NetConnection -ComputerName "microsoft.com" -TraceRoute

此命令跟踪到microsoft.com的网络路由。输出显示路径上的每个路由器。每个跃点的延迟有助于识别慢速连接。

使用特定源地址进行测试

在多宿主系统上,您可以指定要使用的网络接口。-SourceAddress参数定义了用于测试的本地IP地址。这对于从特定网络适配器测试连接很有用。它有助于验证路由配置。

network4.ps1
Test-NetConnection -ComputerName "8.8.8.8" -SourceAddress "192.168.1.100"

此命令使用指定的本地IP测试到Google DNS(8.8.8.8)的连接。输出确认了用于测试的接口。这有助于解决多接口场景的故障。

全面的连接测试

为了进行彻底测试,请组合多个参数。此示例使用详细的诊断来测试TCP端口。-InformationLevel参数提供详细的输出。这为故障排除提供了完整的连接详细信息。

network5.ps1
Test-NetConnection -ComputerName "github.com" -Port 443 -InformationLevel "Detailed"

此命令对github.com的HTTPS连接进行详细测试。输出包括TCP连接详细信息和计时信息。它有助于诊断SSL/TLS连接问题。

来源

PowerShell 文档

在本文中,我们介绍了PowerShell中的Test-NetConnection cmdlet。

作者

我叫Jan Bodnar,是一位热情的程序员,拥有丰富的编程经验。我从2007年开始撰写编程文章。至今,我已撰写了1400多篇文章和8本电子书。我在编程教学方面有十多年的经验。

列出 所有 PowerShell 教程