Test-Connection
将 ICMP 回显请求数据包或 ping 发送给一台或多台计算机。
语法
Default (默认值)
Test-Connection
[-ComputerName] <String[]>
[-AsJob]
[-DcomAuthentication <AuthenticationLevel>]
[-WsmanAuthentication <String>]
[-Protocol <String>]
[-BufferSize <Int32>]
[-Count <Int32>]
[-Impersonation <ImpersonationLevel>]
[-ThrottleLimit <Int32>]
[-TimeToLive <Int32>]
[-Delay <Int32>]
[<CommonParameters>]
Source
Test-Connection
[-ComputerName] <String[]>
[-Source] <String[]>
[-AsJob]
[-DcomAuthentication <AuthenticationLevel>]
[-WsmanAuthentication <String>]
[-Protocol <String>]
[-BufferSize <Int32>]
[-Count <Int32>]
[-Credential <PSCredential>]
[-Impersonation <ImpersonationLevel>]
[-ThrottleLimit <Int32>]
[-TimeToLive <Int32>]
[-Delay <Int32>]
[<CommonParameters>]
Quiet
Test-Connection
[-ComputerName] <String[]>
[-DcomAuthentication <AuthenticationLevel>]
[-WsmanAuthentication <String>]
[-Protocol <String>]
[-BufferSize <Int32>]
[-Count <Int32>]
[-Impersonation <ImpersonationLevel>]
[-TimeToLive <Int32>]
[-Delay <Int32>]
[-Quiet]
[<CommonParameters>]
说明
Test-Connection cmdlet 将 Internet 控制消息协议(ICMP)回显请求数据包(又称为 ping)发送到一台或多台远程计算机,并返回回显响应。 可以使用此 cmdlet 来确定是否可以跨 IP 网络联系特定计算机。
可以使用 Test-Connection 的参数来指定发送和接收计算机、将命令作为后台作业运行、设置超时和 ping 数以及配置连接和身份验证。
与 熟悉的 ping 命令不同,Test-Connection 返回可在 PowerShell 中调查的 Win32_PingStatus 对象。
Quiet 参数为每个测试的连接返回 System.Boolean 对象中的布尔值。 如果测试了多个连接,将返回 布尔 值的数组。
示例
示例 1:向远程计算机发送回显请求
此示例将来自本地计算机的回显请求数据包发送到计算机 Server01。
Test-Connection -ComputerName Server01
Source Destination IPV4Address IPV6Address Bytes Time(ms)
------ ----------- ----------- ----------- ----- --------
ADMIN1 Server01 10.59.137.44 32 0
ADMIN1 Server01 10.59.137.44 32 0
ADMIN1 Server01 10.59.137.44 32 0
ADMIN1 Server01 10.59.137.44 32 1
Test-Connection 使用 ComputerName 参数指定 Server01 计算机。
示例 2:向多台计算机发送回显请求
此示例将 ping 从本地计算机发送到多个远程计算机。
Test-Connection -ComputerName Server01, Server02, Server12
示例 3:将来自多台计算机的回显请求发送到计算机
此示例将来自不同源计算机的 ping 发送到单个远程计算机 Server01。
Test-Connection -Source Server02, Server12, localhost -ComputerName Server01 -Credential Domain01\Admin01
Test-Connection 使用 Credential 参数指定有权从源计算机发送 ping 请求的用户的凭据。 使用此命令格式测试来自多个点的连接延迟。
示例 4:使用参数自定义测试命令
此示例使用Test-Connection参数自定义命令。 本地计算机将 ping 测试发送到远程计算机。
Test-Connection -ComputerName Server01 -Count 3 -Delay 2 -TTL 255 -BufferSize 256 -ThrottleLimit 32
Test-Connection 使用 ComputerName 参数指定 Server01。
Count 参数指定将三个 ping 发送到 Server01 计算机,延迟 2 秒间隔。
当预计 ping 响应的时间比平常更长时,例如由于跃点数增加或网络流量过大,就可以使用这些选项。
示例 5:以后台作业身份运行测试
此示例演示如何将 Test-Connection 命令作为 PowerShell 后台作业运行。
$job = Test-Connection -ComputerName (Get-Content Servers.txt) -AsJob
if ($job.JobStateInfo.State -ne "Running") {$Results = Receive-Job $job}
Test-Connection 命令对企业中的许多计算机执行 ping 操作。
ComputerName 参数的值是一个从 Get-Content读取计算机名称列表的 Servers.txt file 命令。 该命令使用 AsJob 参数将命令作为后台作业运行,并将作业保存在 $job 变量中。
if 命令检查作业是否仍在运行。 如果作业未运行,Receive-Job 获取结果并将其存储在 $Results 变量中。
示例 6:使用凭据 Ping 远程计算机
此命令使用 Test-Connection cmdlet 对远程计算机执行 ping 操作。
Test-Connection Server55 -Credential Domain55\User01 -Impersonation Identify
该命令使用 Credential 参数指定有权 ping 远程计算机的用户帐户和 模拟 参数,以将模拟级别更改为 标识。
示例 7:仅当连接测试成功时创建会话
仅当至少一个发送到计算机的 ping 成功时,此示例才会在 Server01 计算机上创建会话。
if (Test-Connection -ComputerName Server01 -Quiet) {New-PSSession Server01}
if 命令使用 Test-Connection cmdlet ping Server01 计算机。 该命令使用 Quiet 参数,该参数返回 布尔 值,而不是 Win32_PingStatus 对象。 如果四个 ping 中的任何一个成功,则该值 $true;否则为 $false。
如果 Test-Connection 命令返回一个值 $true,该命令将使用 New-PSSession cmdlet 创建 PSSession。
参数
-AsJob
指示此 cmdlet 作为后台作业运行。 指定 AsJob 参数时,该命令将立即返回表示后台作业的对象。 作业完成后,可以继续在会话中工作。 若要获取作业结果,请使用 Receive-Job cmdlet。
有关 PowerShell 后台作业的详细信息,请参阅 about_Jobs 和 about_Remote_Jobs。
参数属性
| 类型: | SwitchParameter |
| 默认值: | False |
| 支持通配符: | False |
| 不显示: | False |
参数集
Default
| Position: | Named |
| 必需: | False |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | False |
Source
| Position: | Named |
| 必需: | False |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | False |
-BufferSize
指定使用此命令发送的缓冲区的大小(以字节为单位)。 默认值为 32。
参数属性
| 类型: | Int32 |
| 默认值: | 32 |
| 支持通配符: | False |
| 不显示: | False |
| 别名: | 尺寸, 字节, 理学学士 |
参数集
(All)
| Position: | Named |
| 必需: | False |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | False |
-ComputerName
指定要 ping 的计算机。 键入计算机名称或以 IPv4 或 IPv6 格式键入 IP 地址。 不允许使用通配符。 此参数是必需的。
此参数不依赖于 PowerShell 远程处理。 即使计算机未配置为运行远程命令,也可以使用 ComputerName 参数。
注释
在 PowerShell 6.0 及更高版本中,ComputerName 参数重命名为 TargetName。
参数属性
| 类型: | String[] |
| 默认值: | None |
| 支持通配符: | False |
| 不显示: | False |
| 别名: | 中国区, IP地址, __服务器, 服务器, 目的地 |
参数集
(All)
| Position: | 0 |
| 必需: | True |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | True |
| 来自剩余参数的值: | False |
-Count
指定要发送的回显请求数。 默认值为 4。
参数属性
| 类型: | Int32 |
| 默认值: | 4 |
| 支持通配符: | False |
| 不显示: | False |
参数集
(All)
| Position: | Named |
| 必需: | False |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | False |
-Credential
指定有权从源计算机发送 ping 请求的用户帐户。 键入用户名(如 User01 或 Domain01\User01),或输入 PSCredential 对象,例如 Get-Credential cmdlet 中的一个。
仅当命令中使用 Source 参数时,Credential 参数才有效。 凭据不会影响目标计算机。
参数属性
| 类型: | PSCredential |
| 默认值: | Current user |
| 支持通配符: | False |
| 不显示: | False |
参数集
Source
| Position: | Named |
| 必需: | False |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | False |
-DcomAuthentication
指定此 cmdlet 用于 WMI 的身份验证级别。
Test-Connection 使用 WMI。
此参数的可接受值为:
- 默认值。 Windows 身份验证
- 无。 无 COM 身份验证
- 连接。 连接级 COM 身份验证
- Call。 调用级 COM 身份验证
- Packet。 数据包级 COM 身份验证
- PacketIntegrity。 数据包完整性级 COM 身份验证
- PacketPrivacy。 数据包隐私级 COM 身份验证
- Unchanged。 与前一个命令相同
默认值为 数据包,其枚举值为 4。 有关此参数的值的详细信息,请参阅 AuthenticationLevel 枚举。
参数属性
| 类型: | AuthenticationLevel |
| 默认值: | Packet (enumerated value of 4) |
| 接受的值: | Default, None, Connect, Call, Packet, PacketIntegrity, PacketPrivacy, Unchanged |
| 支持通配符: | False |
| 不显示: | False |
| 别名: | 身份验证 |
参数集
(All)
| Position: | Named |
| 必需: | False |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | False |
-Delay
指定 ping 之间的间隔(以秒为单位)。
参数属性
| 类型: | Int32 |
| 默认值: | 1 (second) |
| 支持通配符: | False |
| 不显示: | False |
参数集
(All)
| Position: | Named |
| 必需: | False |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | False |
-Impersonation
指定此 cmdlet 调用 WMI 时要使用的模拟级别。
Test-Connection 使用 WMI。
此参数的可接受值如下所示:
- 默认值。 默认模拟。
- 匿名。 隐藏调用方的身份。
- 标识。 允许对象查询调用方凭据。
- 模拟。 允许对象使用调用方凭据。
默认值为 模拟。
参数属性
| 类型: | ImpersonationLevel |
| 默认值: | Impersonate |
| 接受的值: | Default, Anonymous, Identify, Impersonate, Delegate |
| 支持通配符: | False |
| 不显示: | False |
参数集
(All)
| Position: | Named |
| 必需: | False |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | False |
-Protocol
指定协议。 此参数的可接受值为 DCOM 和 WSMan。
参数属性
| 类型: | String |
| 默认值: | None |
| 接受的值: | DCOM, WSMan |
| 支持通配符: | False |
| 不显示: | False |
参数集
(All)
| Position: | Named |
| 必需: | False |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | False |
-Quiet
Quiet 参数在 system.Boolean 对象中返回 布尔 值。 使用此参数可抑制所有错误。
测试的每个连接都会返回 布尔 值。 如果 ComputerName 参数指定多台计算机,则返回 布尔值 值的数组。
如果 任何 ping 成功,则返回 $true。
如果 所有 ping 失败,则返回 $false。
参数属性
| 类型: | SwitchParameter |
| 默认值: | False |
| 支持通配符: | False |
| 不显示: | False |
参数集
Quiet
| Position: | Named |
| 必需: | False |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | False |
-Source
指定 ping 源自的计算机的名称。 输入以逗号分隔的计算机名称列表。 默认值为本地计算机。
参数属性
| 类型: | String[] |
| 默认值: | Local computer |
| 支持通配符: | False |
| 不显示: | False |
| 别名: | FCN, SRC |
参数集
Source
| Position: | 1 |
| 必需: | True |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | False |
-ThrottleLimit
指定可建立以运行此命令的最大并发连接数。 如果省略此参数或输入值 0,则使用默认值 32。
限制限制仅适用于当前命令,不适用于会话或计算机。
参数属性
| 类型: | Int32 |
| 默认值: | 32 |
| 支持通配符: | False |
| 不显示: | False |
参数集
Default
| Position: | Named |
| 必需: | False |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | False |
Source
| Position: | Named |
| 必需: | False |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | False |
-TimeToLive
指定数据包可以转发的最大时间。 对于网关、路由器等中的每个跃点,TimeToLive 值将减少一个。 在零时,将丢弃数据包并返回错误。 在 Windows中,默认值为 128。 TimeToLive 参数的别名 TTL。
参数属性
| 类型: | Int32 |
| 默认值: | 128 in Windows |
| 支持通配符: | False |
| 不显示: | False |
| 别名: | TTL |
参数集
(All)
| Position: | Named |
| 必需: | False |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | False |
-WsmanAuthentication
指定此 cmdlet 使用 WSMan 协议时用于对用户凭据进行身份验证的机制。 此参数的可接受值为:
- 基本
- CredSSP
- 违约
- 摘要
- Kerberos
- 谈判。
默认值为 Default。
有关此参数的值的详细信息,请参阅 AuthenticationMechanism 枚举。
注意:在凭据安全服务提供程序 (CredSSP) 身份验证中,用户凭据传递到远程计算机中以进行验证,这种验证用于要求对多个资源(例如访问远程网络共享)进行验证的命令。 此机制会增加远程操作的安全风险。 如果远程计算机遭到入侵,则传递给它的凭据可用于控制网络会话。
此参数是在 Windows PowerShell 3.0 中引入的。
参数属性
| 类型: | String |
| 默认值: | Default |
| 接受的值: | Default, Basic, Negotiate, CredSSP, Digest, Kerberos |
| 支持通配符: | False |
| 不显示: | False |
参数集
(All)
| Position: | Named |
| 必需: | False |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | False |
CommonParameters
此 cmdlet 支持通用参数:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 有关详细信息,请参阅 about_CommonParameters。
输入
None
不能用管道将对象传送到此 cmdlet。
输出
ManagementObject
默认情况下,此 cmdlet 为每个 ping 答复返回一个 Win32_PingStatus 对象。
System.Management.Automation.RemotingJob
如果指定 AsJob 参数,则此 cmdlet 将返回作业对象。
Boolean
使用 Quiet 参数时,它会返回一个布尔值。 如果 cmdlet 测试多个连接,它将返回一组布尔值。
备注
此 cmdlet 使用 Win32_PingStatus 类。
Get-WmiObject Win32_PingStatus 命令等效于 Test-Connection 命令。
PowerShell 3.0 中引入了 源 参数集。