Test-Connection
将 ICMP 回显请求数据包或 ping 发送到一台或多台计算机。
语法
Test-Connection
[-ComputerName] <String[]>
[-AsJob]
[-Authentication <AuthenticationLevel>]
[-BufferSize <Int32>]
[-Count <Int32>]
[-Impersonation <ImpersonationLevel>]
[-ThrottleLimit <Int32>]
[-TimeToLive <Int32>]
[-Delay <Int32>]
[<CommonParameters>]
Test-Connection
[-ComputerName] <String[]>
[-Source] <String[]>
[-AsJob]
[-Authentication <AuthenticationLevel>]
[-BufferSize <Int32>]
[-Count <Int32>]
[-Credential <PSCredential>]
[-Impersonation <ImpersonationLevel>]
[-ThrottleLimit <Int32>]
[-TimeToLive <Int32>]
[-Delay <Int32>]
[<CommonParameters>]
Test-Connection
[-ComputerName] <String[]>
[-Authentication <AuthenticationLevel>]
[-BufferSize <Int32>]
[-Count <Int32>]
[-Impersonation <ImpersonationLevel>]
[-TimeToLive <Int32>]
[-Delay <Int32>]
[-Quiet]
[<CommonParameters>]
说明
cmdlet Test-Connection
将 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
使用 TargetName 参数指定 Server01。 Count 参数指定将三个 ping 发送到 Server01 计算机的延迟间隔为 2 秒。
当 ping 响应预计花费比平常更长的时间时,可以使用这些选项,原因可能是跃点数增加或网络流量较高。
示例 5:将测试作为后台作业运行
此示例演示如何将命令作为 PowerShell 后台作业运行 Test-Connection
。
$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 操作的用户帐户,并使用 Impersonation 参数将模拟级别更改为 “标识”。
示例 7:仅当连接测试成功时Create会话
此示例仅在至少一个发送到计算机的 ping 成功时,才在 Server01 计算机上创建会话。
if (Test-Connection -ComputerName Server01 -Quiet) {New-PSSession Server01}
命令 if
使用 Test-Connection
cmdlet 对 Server01 计算机执行 ping 操作。 命令使用 Quiet 参数,该参数返回 布尔 值,而不是 Win32_PingStatus 对象。 如果四个 ping 中的任意一个成功,则值为 $True
,否则为 $False
。
Test-Connection
如果命令返回值 $True
,则命令使用 New-PSSession
cmdlet 创建 PSSession。
参数
-AsJob
指示此 cmdlet 作为后台作业运行。
若要使用此参数,必须将本地和远程计算机配置为远程处理,并且,在 Windows Vista 及更高版本的 Windows 操作系统上,必须使用 “以管理员身份运行” 选项打开 PowerShell。 有关详细信息,请参阅 about_Remote_Requirements。
指定 AsJob 参数时,该命令立即返回代表后台作业的对象。 当作业完成时,你可以继续在此会话中工作。 作业在本地计算机上创建,并且来自远程计算机的结果将自动返回本地计算机。 若要获取作业结果,请使用 Receive-Job
cmdlet。
有关 PowerShell 后台作业的详细信息,请参阅 about_Jobs 和 about_Remote_Jobs。
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Authentication
指定用于 WMI 连接的身份验证级别。 Test-Connection
使用 WMI。
有效值如下:
- 未更改:身份验证级别与上一个命令相同。
- 默认值:Windows 身份验证。
- 无:无 COM 身份验证。
- 连接:连接级 COM 身份验证。
- 呼叫:调用级 COM 身份验证。
- 数据包:数据包级 COM 身份验证。
- PacketIntegrity:数据包完整性级别 COM 身份验证。
- PacketPrivacy:数据包隐私级别 COM 身份验证。
默认值为枚举值为 4 的数据包。 有关此参数的值的详细信息,请参阅 AuthenticationLevel 枚举。
Type: | AuthenticationLevel |
Accepted values: | Default, None, Connect, Call, Packet, PacketIntegrity, PacketPrivacy, Unchanged |
Position: | Named |
Default value: | Packet (enumerated value of 4) |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-BufferSize
指定使用此命令发送的缓冲区的大小,以字节为单位。 默认值为 32。
Type: | Int32 |
Aliases: | Size, Bytes, BS |
Position: | Named |
Default value: | 32 |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ComputerName
指定要对其执行 ping 操作的计算机。 请键入计算机名称或者以 IPv4 或 IPv6 格式键入 IP 地址。 不允许使用通配符。 此参数是必需的。
此参数不依赖于 PowerShell 远程处理。 即使计算机未配置为运行远程命令,也可以使用 ComputerName 参数。
Type: | String[] |
Aliases: | CN, IPAddress, __SERVER, Server, Destination |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Count
指定要发送的回显请求数。 默认值为 4。
Type: | Int32 |
Position: | Named |
Default value: | 4 |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Credential
指定有权从源计算机发送 ping 请求的用户帐户。 键入用户名(如 User01 或 Domain01\User01),或输入 PSCredential 对象,例如 cmdlet 中的 Get-Credential
一个对象。
仅当该命令中使用了 Source 参数时,Credential 参数才有效。 凭据不会影响目标计算机。
Type: | PSCredential |
Position: | Named |
Default value: | Current user |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Delay
指定两次 ping 操作之间的间隔时间,以秒为单位。
Type: | Int32 |
Position: | Named |
Default value: | 1 (second) |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Impersonation
指定此 cmdlet 调用 WMI 时使用的模拟级别。 Test-Connection
使用 WMI。
此参数的可接受值如下所示:
- Default。 默认模拟。
- 匿名。 隐藏调用方的身份。
- 标识。 允许对象查询调用方的凭据。
- 模拟。 允许对象使用调用方的凭据。
默认值为 “模拟”。
Type: | ImpersonationLevel |
Accepted values: | Default, Anonymous, Identify, Impersonate, Delegate |
Position: | Named |
Default value: | Impersonate |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Quiet
Quiet 参数返回 System.Boolean 对象中的布尔值。 使用此参数可禁止显示所有错误。
每个测试的连接都返回 一个布尔 值。 如果 ComputerName 参数指定多台计算机,则返回 布尔 值数组。
如果 任何 ping 成功, $True
则返回 。
如果 所有 ping 都失败, $False
则返回 。
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Source
指定发出 ping 请求的计算机的名称。 请输入以逗号分隔的计算机名称的列表。 默认为本地计算机。
Type: | String[] |
Aliases: | FCN, SRC |
Position: | 1 |
Default value: | Local computer |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ThrottleLimit
指定为运行此命令可建立的并发连接的最大数目。 如果省略此参数或输入 0 值,则使用默认值 32。
节流限制仅适用于当前命令,而不适用于会话或计算机。
Type: | Int32 |
Position: | Named |
Default value: | 32 |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-TimeToLive
指定可以转发数据包的最长时间。 对于网关、路由器等中的每个跃点, TimeToLive 值将减少一个。 在零时,丢弃数据包并返回错误。 在 Windows 中,默认值为 128。 TimeToLive 参数的别名为 TTL。
Type: | Int32 |
Aliases: | TTL |
Position: | Named |
Default value: | 128 in Windows |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
输入
None
无法通过管道将输入传递给此 cmdlet。
输出
如果指定 AsJob 参数,则此 cmdlet 将返回作业对象。
如果指定 Quiet 参数,它将返回 布尔 值。 如果测试多个连接,则返回 布尔 值数组。 否则, Test-Connection
为每个 ping 返回 Win32_PingStatus 对象。
备注
此 cmdlet 使用 Win32_PingStatus 类。 命令 Get-WMIObject Win32_PingStatus
等效于 Test-Connection
命令。
PowerShell 3.0 中引入了 Source 参数集。