当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] Test-Connection (Microsoft.PowerShell.Management)

作者:精品下载站 日期:2024-12-14 02:09:56 浏览:12 分类:玩电脑

Test-Connection (Microsoft.PowerShell.Management)


Test-Connection

模块 :Microsoft.PowerShell.Management

向一台或多台计算机发送 ICMP 回显请求数据包或 ping。

句法

Test-Connection
    [-TargetName] <string[]>
    [-Ping]
    [-IPv4]
    [-IPv6]
    [-ResolveDestination]
    [-Source <string>]
    [-MaxHops <int>]
    [-Count <int>]
    [-Delay <int>]
    [-BufferSize <int>]
    [-DontFragment]
    [-Quiet]
    [-TimeoutSeconds <int>]
    [<CommonParameters>]
Test-Connection
    [-TargetName] <string[]>
    -Repeat
    [-Ping]
    [-IPv4]
    [-IPv6]
    [-ResolveDestination]
    [-Source <string>]
    [-MaxHops <int>]
    [-Delay <int>]
    [-BufferSize <int>]
    [-DontFragment]
    [-Quiet]
    [-TimeoutSeconds <int>]
    [<CommonParameters>]
Test-Connection
    [-TargetName] <string[]>
    -Traceroute
    [-IPv4]
    [-IPv6]
    [-ResolveDestination]
    [-Source <string>]
    [-MaxHops <int>]
    [-Quiet]
    [-TimeoutSeconds <int>]
    [<CommonParameters>]
Test-Connection
    [-TargetName] <string[]>
    -MtuSize
    [-IPv4]
    [-IPv6]
    [-ResolveDestination]
    [-Quiet]
    [-TimeoutSeconds <int>]
    [<CommonParameters>]
Test-Connection
    [-TargetName] <string[]>
    -TcpPort <int>
    [-IPv4]
    [-IPv6]
    [-ResolveDestination]
    [-Source <string>]
    [-Count <int>]
    [-Delay <int>]
    [-Repeat]
    [-Quiet]
    [-TimeoutSeconds <int>]
    [-Detailed]
    [<CommonParameters>]

描述

Test-Connection cmdlet 向一台或多台远程计算机发送 Internet 控制消息协议 (ICMP) 回显请求数据包或 ping,并返回回显响应答复。您可以使用此 cmdlet 确定是否可以通过 IP 网络联系特定计算机。

您可以使用 Test-Connection 的参数指定发送和接收计算机、将命令作为后台作业运行、设置超时和 ping 次数以及配置连接和认证。

与熟悉的 ping 命令不同,Test-Connection 返回一个 TestConnectionCommand+PingStatus 对象,您可以在 PowerShell 中调查该对象。 Quiet 参数在 System.Boolean 对象中为每个测试连接返回一个 Boolean 值。如果测试多个连接,则返回一个布尔值数组。

示例

示例 1:向远程计算机发送回显请求

此示例将回显请求数据包从本地计算机发送到 Server01 计算机。

Test-Connection -TargetName Server01 -IPv4

Destination: Server01

Ping Source           Address                   Latency BufferSize Status
                                                   (ms)        (B)
---- ------           -------                   ------- ---------- ------
   1 ADMIN1           10.59.137.44                   24         32 Success
   2 ADMIN1           10.59.137.44                   39         32 Success
   3 ADMIN1           *                               *          * TimedOut
   4 ADMIN1           10.59.137.44                   28         32 Success

Test-Connection 使用TargetName 参数指定 Server01 计算机。 IPv4 参数指定测试的协议。

一系列 TestConnectionCommand+PingStatus 对象被发送到输出流,来自目标计算机的每个 ping 回复都有一个对象。

示例 2:向多台计算机发送 echo 请求

此示例将 ping 从本地计算机发送到多台远程计算机。

Test-Connection -TargetName Server01, Server02, Server12

示例3:使用参数自定义测试命令

此示例使用 Test-Connection 的参数来自定义命令。本地计算机向远程计算机发送 ping 测试。

Test-Connection -TargetName Server01 -Count 3 -Delay 2 -MaxHops 255 -BufferSize 256

Test-Connection 使用TargetName 参数指定Server01。 Count 参数指定将三个 ping 发送到 Server01 计算机,延迟 间隔为 2 秒。

当 ping 响应预计需要比平时更长的时间(由于跃点数量增加或网络流量较高)时,您可以使用这些选项。

示例 4:将测试作为后台作业运行

此示例演示如何将 Test-Connection 命令作为 PowerShell 后台作业运行。

$job = Start-Job -ScriptBlock { Test-Connection -TargetName (Get-Content -Path "Servers.txt") }
$Results = Receive-Job $job -Wait

Start-Job 命令使用 Test-Connection cmdlet 对企业中的多台计算机执行 ping 操作。 TargetName 参数的值是一个 Get-Content 命令,该命令从 Servers.txt 文件中读取计算机名称列表。该命令使用 Start-Job cmdlet 将命令作为后台作业运行,并将作业保存在 $job 变量中。

Receive-Job 命令被指示-Wait 直到作业完成,然后获取结果并将其存储在 $Results 变量中。

示例 5:仅在连接测试成功时创建会话

仅当至少有一个发送到计算机的 ping 成功时,此示例才会在 Server01 计算机上创建会话。

if (Test-Connection -TargetName Server01 -Quiet) { New-PSSession -ComputerName Server01 }

Test-Connection cmdlet 使用提供的Quiet 参数对 Server01 计算机执行 ping 操作。如果四个 ping 中的任何一个成功,结果值为 $True。如果没有 ping 成功,则值为 $False

如果 Test-Connection 命令返回值 $True,则该命令使用 New-PSSession cmdlet 创建 PSSession

示例 6:使用 Traceroute 参数

Traceroute 参数在 PowerShell 6.0 中引入,可映射本地计算机与使用 TargetName 参数指定的远程目标之间的路由。

Test-Connection -TargetName www.google.com -Traceroute

Target: google.com

Hop Hostname                  Ping Latency Status           Source       TargetAddress
                                      (ms)
--- --------                  ---- ------- ------           ------       -------------
  1 172.20.0.1                   1       4 Success          Lira         172.217.9.174
  1 172.20.0.1                   2       3 Success          Lira         172.217.9.174
  1 172.20.0.1                   3       2 Success          Lira         172.217.9.174
  2 12.108.153.193               1       3 Success          Lira         172.217.9.174
  2 12.108.153.193               2       3 Success          Lira         172.217.9.174
  2 12.108.153.193               3       2 Success          Lira         172.217.9.174
  3 12.244.85.177                1      11 Success          Lira         172.217.9.174
  3 12.244.85.177                2      12 Success          Lira         172.217.9.174
  3 12.244.85.177                3      12 Success          Lira         172.217.9.174
  4 *                            1      14 DestinationNetw… Lira         172.217.9.174
  4 *                            2       * TimedOut         Lira         172.217.9.174
  4 *                            3      20 DestinationNetw… Lira         172.217.9.174
  5 *                            1       * TimedOut         Lira         172.217.9.174
  5 *                            2      15 DestinationNetw… Lira         172.217.9.174
  5 *                            3       * TimedOut         Lira         172.217.9.174
  6 *                            1      18 DestinationNetw… Lira         172.217.9.174
  6 *                            2       * TimedOut         Lira         172.217.9.174
  6 *                            3      16 DestinationNetw… Lira         172.217.9.174
  7 *                            1       * TimedOut         Lira         172.217.9.174
  7 *                            2       * TimedOut         Lira         172.217.9.174
  7 *                            3       * TimedOut         Lira         172.217.9.174
  8 *                            1       * TimedOut         Lira         172.217.9.174
  8 *                            2       * TimedOut         Lira         172.217.9.174
  8 *                            3       * TimedOut         Lira         172.217.9.174
  9 *                            1       * TimedOut         Lira         172.217.9.174
  9 *                            2       * TimedOut         Lira         172.217.9.174
  9 *                            3       * TimedOut         Lira         172.217.9.174
 10 *                            1       * TimedOut         Lira         172.217.9.174
 10 *                            2       * TimedOut         Lira         172.217.9.174
 10 *                            3       * TimedOut         Lira         172.217.9.174
 11 172.217.9.174                1      23 Success          Lira         172.217.9.174
 11 172.217.9.174                2      21 Success          Lira         172.217.9.174
 11 172.217.9.174                3      22 Success          Lira         172.217.9.174

使用 Traceroute 参数调用 Test-Connection 命令。结果是 [Microsoft.PowerShell.Commands.TestConnectionCommand+TraceStatus] 对象,将输出到 Success 输出流。

示例 7:获取 TCP 连接测试的详细输出

当您使用 Detailed 参数时,此 cmdlet 将返回有关 TCP 连接尝试状态的详细信息。

Test-Connection bing.com -TCPPort 443 -Detailed -Count 4

Target: bing.com

Id Source     Address           Port Latency(ms) Connected Status
-- ------     -------           ---- ----------- --------- ------
 1 circumflex 2620:1ec:c11::200  443          12 True      Success
 2 circumflex 2620:1ec:c11::200  443          14 True      Success
 3 circumflex 2620:1ec:c11::200  443          17 True      Success
 4 circumflex 2620:1ec:c11::200  443          17 True      Success

参数

-BufferSize

指定使用此命令发送的缓冲区的大小(以字节为单位)。默认值为 32。

类型 :

整数32

别名:

Size, Bytes, BS

位置:

命名

默认值:

32

必需的:

False

接受管道输入:

False

接受通配符:

False

-Count

指定要发送的回显请求的数量。默认值为 4。

类型 :

整数32

位置:

命名

默认值:

4

必需的:

False

接受管道输入:

False

接受通配符:

False

-Delay

指定 ping 之间的时间间隔(以秒为单位)。

类型 :

整数32

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-Detailed

当您使用 Detailed 参数时,此 cmdlet 将返回有关 TCP 连接尝试状态的详细信息。

此参数是在 PowerShell 7.4 中添加的。

类型 :

SwitchParameter

位置:

命名

默认值:

False

必需的:

False

接受管道输入:

False

接受通配符:

False

-DontFragment

此参数设置 IP 标头中的不分段标志。您可以将此参数与 BufferSize 参数结合使用来测试路径 MTU 大小。有关路径 MTU 的更多信息,请参阅 wikipedia 中的路径 MTU 发现文章。

类型 :

SwitchParameter

位置:

命名

默认值:

False

必需的:

False

接受管道输入:

False

接受通配符:

False

-IPv4

强制 cmdlet 使用 IPv4 协议进行测试。

类型 :

SwitchParameter

位置:

命名

默认值:

False

必需的:

False

接受管道输入:

False

接受通配符:

False

-IPv6

强制 cmdlet 使用 IPv6 协议进行测试。

类型 :

SwitchParameter

位置:

命名

默认值:

False

必需的:

False

接受管道输入:

False

接受通配符:

False

-MaxHops

设置 ICMP 请求消息可以发送的最大跳数。默认值由操作系统控制。 Windows 10 及更高版本的默认值为 128 跳。

类型 :

整数32

别名:

Ttl, TimeToLive, Hops

位置:

命名

默认值:

128

必需的:

False

接受管道输入:

False

接受通配符:

False

-MtuSize

该参数用于发现路径 MTU 大小。该 cmdlet 返回一个 PingReply#MTUSize 对象,其中包含目标的路径 MTU 大小。有关路径 MTU 的更多信息,请参阅 wikipedia 中的路径 MTU 发现文章。

类型 :

SwitchParameter

别名:

MtuSizeDetect

位置:

命名

默认值:

False

必需的:

True

接受管道输入:

False

接受通配符:

False

-Ping

使 cmdlet 执行 ping 测试。这是Test-Connection cmdlet 的默认模式。

类型 :

SwitchParameter

位置:

命名

默认值:

True

必需的:

False

接受管道输入:

False

接受通配符:

False

-Quiet

Quiet 参数返回一个Boolean 值。使用此参数可以抑制所有错误。

测试的每个连接都会返回一个布尔值。如果TargetName参数指定多台计算机,则返回布尔值数组。

如果对给定目标的any ping 成功,则返回$True

如果对给定目标的所有 ping 失败,则返回$False

类型 :

SwitchParameter

位置:

命名

默认值:

False

必需的:

False

接受管道输入:

False

接受通配符:

False

-Repeat

导致 cmdlet 连续发送 ping 请求。当 TargetName 的值是目标数组时,cmdlet 仅对第一个目标重复 ping 请求。它忽略剩余的目标。此参数不能与 Count 参数一起使用。

类型 :

SwitchParameter

别名:

Continuous

位置:

命名

默认值:

False

必需的:

False

接受管道输入:

False

接受通配符:

False

-ResolveDestination

导致 cmdlet 尝试解析目标的 DNS 名称。当与 Traceroute 参数结合使用时,如果可能的话,还将检索所有中间主机的 DNS 名称。

类型 :

SwitchParameter

位置:

命名

默认值:

False

必需的:

False

接受管道输入:

False

接受通配符:

False

-Source

指定 ping 发出的计算机的名称。输入以逗号分隔的计算机名称列表。默认为本地计算机。

笔记

PowerShell 版本 6 及更高版本不支持此参数。提供此参数会导致错误。

类型 :

String

位置:

命名

默认值:

本地电脑

必需的:

False

接受管道输入:

False

接受通配符:

False

-TargetName

指定要测试的计算机。键入计算机名称或键入 IPv4 或 IPv6 格式的 IP 地址。

类型 :

String[]

别名:

ComputerName

位置:

0

默认值:

None

必需的:

True

接受管道输入:

True

接受通配符:

False

-TcpPort

指定目标上要在 TCP 连接测试中使用的 TCP 端口号。

该 cmdlet 尝试与目标上的指定端口建立 TCP 连接。

  • 如果建立连接,该 cmdlet 将返回 $True
  • 如果未建立连接,该 cmdlet 将返回 $False
类型 :

整数32

位置:

命名

默认值:

None

必需的:

True

接受管道输入:

False

接受通配符:

False

-TimeoutSeconds

设置测试的超时值。如果在超时到期之前未收到响应,则测试失败。默认值为五秒。

此参数是在 PowerShell 6.0 中引入的。

类型 :

整数32

位置:

命名

默认值:

5秒

必需的:

False

接受管道输入:

False

接受通配符:

False

-Traceroute

使 cmdlet 执行跟踪路由测试。使用此参数时,cmdlet 返回一个 TestConnectionCommand+TraceStatus 对象。

类型 :

SwitchParameter

位置:

命名

默认值:

False

必需的:

True

接受管道输入:

False

接受通配符:

False

输入

您无法通过管道将对象传递到此 cmdlet。

输出

Microsoft.PowerShell.Commands.TestConnectionCommand+PingStatus

默认情况下,此 cmdlet 为每个 ping 回复返回一个 TestConnectionCommand+PingStatus 对象。

Microsoft.PowerShell.Commands.TestConnectionCommand+TraceStatus

当您使用 Traceroute 参数时,此 cmdlet 会为路由上的每个 ping 回复返回一个 TestConnectionCommand+TraceStatus 对象。

布尔值

当您使用QuietTcpPort 参数时,此cmdlet 将返回布尔 值。如果 cmdlet 测试多个连接,它将返回一个布尔值数组。

Microsoft.PowerShell.Commands.TestConnectionCommand+PingMtuStatus

当您使用 MtuSize 参数时,此 cmdlet 会为每个 ping 回复返回一个 TestConnectionCommand+PingMtuStatus 对象。

Microsoft.PowerShell.Commands.TestConnectionCommand+TcpPortStatus

当您使用 Detailed 参数时,此 cmdlet 将返回一个 TestConnectionCommand+TcpPortStatus 对象,该对象显示 TCP 连接的状态。

笔记

在 Linux 上,使用 BufferSize 参数或参数与 MtuSizeDetect 参数集的任意组合来生成 32 字节的非默认缓冲区大小可能需要 sudo。在这些情况下,Test-Command 会引发异常,并显示一条消息,指示需要 sudo

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯