ZetCode

PowerShell Test-Connection

最后修改:2025 年 2 月 15 日

在本文中,我们将介绍PowerShell中的Test-Connection cmdlet。此cmdlet发送ICMP回显请求数据包,以测试计算机之间的网络连接。

Test-Connection 基本用法

Test-Connection cmdlet是PowerShell中传统ping命令的等效命令。它向一台或多台远程计算机发送ICMP回显请求。该cmdlet返回响应统计信息,包括延迟和状态。它比基本的ping命令提供了更多的功能。

基本 Test-Connection 用法

使用Test-Connection的最简单方法是仅提供目标计算机名或IP地址。默认情况下,这会发送四个ICMP回显请求。输出显示每次尝试的响应时间和状态。这对于基本连接性测试很有用。

connection1.ps1
Test-Connection -ComputerName "google.com"

此命令测试与google.com的连接。输出显示发送的四个ICMP数据包的响应时间和状态。成功表示存在网络连接。

测试特定次数的连接

您可以使用-Count参数指定要发送的回显请求的数量。当您需要比默认的四个更多的或更少的测试数据包时,这很有用。该命令将在继续之前等待每个响应。这允许自定义测试时长。

connection2.ps1
Test-Connection -ComputerName "8.8.8.8" -Count 2

此命令仅向Google的DNS服务器8.8.8.8发送两个ICMP回显请求。减少的计数使测试完成得更快,同时仍然验证连接。

PS C:\> .\connection2.ps1

Source        Destination     IPV4Address      IPV6Address                              Bytes    Time(ms)
------        -----------     -----------      -----------                              -----    --------
DESKTOP-ABC   8.8.8.8        8.8.8.8                                                 32        15
DESKTOP-ABC   8.8.8.8        8.8.8.8                                                 32        14

连续连接测试

对于持续监控,请使用-Continuous参数。这将无限期地发送ICMP请求,直到手动按下Ctrl+C停止。它对于监控随时间推移的连接稳定性很有用。每个响应在接收时都会显示。

connection3.ps1
Test-Connection -ComputerName "localhost" -Continuous

此命令会连续ping本地计算机,直到中断。这有助于监控本地网络适配器状态。输出会随着每个新接收到的响应而更新。

测试多台计算机

Test-Connection可以同时测试多台计算机。提供以逗号分隔的多个计算机名或IP地址。默认情况下,cmdlet会依次测试每个计算机。一次检查多个网络设备非常高效。

connection4.ps1
Test-Connection -ComputerName "google.com", "8.8.8.8", "localhost" -Count 1

此命令一次测试三个不同目标的连接,每个目标ping一次。输出分别显示每个目标的结果。失败的连接将在输出中清楚标明。

脚本的安静模式

对于脚本,您可能需要简单的布尔结果,而不是详细的输出。-Quiet参数在任何数据包收到响应时返回$True,否则返回$False。这简化了自动化脚本中的条件逻辑。

connection5.ps1
if (Test-Connection -ComputerName "server01" -Count 1 -Quiet) {
    Write-Host "Server is reachable"
} else {
    Write-Host "Server is unreachable"
}

此脚本检查服务器连接并输出一个简单的状态消息。-Quiet参数使cmdlet返回一个布尔值,适用于if语句。这对于自动化监控脚本非常理想。

来源

PowerShell 文档

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

作者

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

列出 所有 PowerShell 教程