Test-Connection
將ICMP回應要求封包或 Ping 傳送至一或多部電腦。
Syntax
Test-Connection
[-TargetName] <string[]>
[-Ping]
[-IPv4]
[-IPv6]
[-ResolveDestination]
[-Source <string>]
[-MaxHops <int>]
[-Count <int>]
[-Delay <int>]
[-BufferSize <int>]
[-DontFragment]
[-TimeoutSeconds <int>]
[-Quiet]
[<CommonParameters>]
Test-Connection
[-TargetName] <string[]>
-Repeat
[-Ping]
[-IPv4]
[-IPv6]
[-ResolveDestination]
[-Source <string>]
[-MaxHops <int>]
[-Delay <int>]
[-BufferSize <int>]
[-DontFragment]
[-TimeoutSeconds <int>]
[-Quiet]
[<CommonParameters>]
Test-Connection
[-TargetName] <string[]>
-MtuSize
[-IPv4]
[-IPv6]
[-ResolveDestination]
[-TimeoutSeconds <int>]
[-Quiet]
[<CommonParameters>]
Test-Connection
[-TargetName] <string[]>
-Traceroute
[-IPv4]
[-IPv6]
[-ResolveDestination]
[-Source <string>]
[-MaxHops <int>]
[-TimeoutSeconds <int>]
[-Quiet]
[<CommonParameters>]
Test-Connection
[-TargetName] <string[]>
-TcpPort <int>
[-IPv4]
[-IPv6]
[-ResolveDestination]
[-Source <string>]
[-TimeoutSeconds <int>]
[-Quiet]
[<CommonParameters>]
Description
Cmdlet 會將 Test-Connection
因特網控制訊息通訊協定 (ICMP) 回應要求封包或 ping 傳送至一或多部遠端電腦,並傳回回應回應回復。 您可以使用此 Cmdlet 來判斷是否可以透過 IP 網路連絡特定電腦。
您可以使用 Test-Connection
的參數來指定傳送和接收計算機、以背景工作方式執行命令、設定逾時和 Ping 數目,以及設定連線和驗證。
不同於熟悉的 ping 命令,Test-Connection
會傳回 Test 連線 ionCommand+PingStatus 物件,您可以在 PowerShell 中調查該物件。 Quiet 參數會針對每個測試的連接傳回 System.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 參數會指定測試的通訊協定。
一系列的 Test 連線 ionCommand+PingStatus 物件會傳送至輸出數據流,每部來自目標電腦的 Ping 回復一個物件。
範例 2:將回應要求傳送至數部計算機
此範例會將 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:以背景工作身分執行測試
此範例示範如何以PowerShell背景工作身分執行 Test-Connection
命令。
$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 }
Cmdlet Test-Connection
會偵測 Server01
計算機,並提供 Quiet 參數。
產生的值是 $True
如果四個 Ping 中的任何一個成功。 如果 Ping 沒有成功,則值為 $False
。
Test-Connection
如果命令傳回 的值$True
,命令會New-PSSession
使用 Cmdlet 來建立 PSSession。
範例 6:使用 Traceroute 參數
在 PowerShell 6.0 中引進, Traceroute 參數會對應本機電腦與您以 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
使用 Test-Connection
Traceroute 參數呼叫命令。 結果,即[Microsoft.PowerShell.Commands.TestConnectionCommand+TraceStatus]
物件,是成功輸出數據流的輸出。
參數
-BufferSize
指定使用此命令傳送之緩衝區的大小,以位元組為單位。 預設值為 32。
Type: | Int32 |
Aliases: | Size, Bytes, BS |
Position: | Named |
Default value: | 32 |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Count
指定要傳送的回應要求數目。 預設值為 4。
Type: | Int32 |
Position: | Named |
Default value: | 4 |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Delay
指定 ping 之間的間隔,以秒為單位。
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DontFragment
此參數會在 IP標頭中設定 [不要片段 ] 旗標。 您可以使用此參數搭配 BufferSize 參數來測試路徑 MTU 大小。 如需路徑 MTU 的詳細資訊,請參閱 維琪百科中的路徑 MTU 探索 文章。
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-IPv4
強制 Cmdlet 使用 IPv4 通訊協定進行測試。
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-IPv6
強制 Cmdlet 使用 IPv6 通訊協定進行測試。
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-MaxHops
設定ICMP要求訊息可以傳送的最大躍點數目。 預設值是由操作系統所控制。 Windows 10 和更新版本的預設值為 128 個躍點。
Type: | Int32 |
Aliases: | Ttl, TimeToLive, Hops |
Position: | Named |
Default value: | 128 |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-MtuSize
此參數可用來探索路徑 MTU 大小。 Cmdlet 會傳回 PingReply#MTUSize 物件,其中包含目標的路徑 MTU 大小。 如需路徑 MTU 的詳細資訊,請參閱 維琪百科中的路徑 MTU 探索 文章。
Type: | SwitchParameter |
Aliases: | MtuSizeDetect |
Position: | Named |
Default value: | False |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Ping
導致 Cmdlet 執行 Ping 測試。 這是 Cmdlet 的預設模式 Test-Connection
。
Type: | SwitchParameter |
Position: | Named |
Default value: | True |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Quiet
Quiet 參數會傳回布爾值。 使用此參數會隱藏所有錯誤。
測試的每個連線都會 傳回布爾 值。 如果 TargetName 參數指定多部電腦,則會傳回布爾值陣列。
如果 指定目標的任何 Ping 成功, $True
則會傳回 。
如果 指定目標的所有 Ping 失敗, $False
則會傳回 。
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Repeat
導致 Cmdlet 持續傳送 Ping 要求。 當 TargetName 的值是目標的陣列時,Cmdlet 只會針對第一個目標重複 Ping 要求。 它會忽略其餘的目標。 此參數無法與 Count 參數搭配使用。
Type: | SwitchParameter |
Aliases: | Continuous |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ResolveDestination
導致 Cmdlet 嘗試解析目標的 DNS 名稱。 搭配 Traceroute 參數使用時,如果可能的話,也會擷取所有中繼主機的 DNS 名稱。
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Source
指定 Ping 來源的電腦名稱。 輸入以逗號分隔的計算機名稱清單。 預設是本機電腦。
注意
PowerShell 第 6 版和更新版本中不支援此參數。 提供此參數會造成錯誤。
Type: | String |
Position: | Named |
Default value: | Local computer |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-TargetName
指定要測試的計算機。 以IPv4或IPv6格式輸入電腦名稱或輸入IP位址。
Type: | String[] |
Aliases: | ComputerName |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-TcpPort
指定要在 TCP 連線測試中使用的目標 TCP 通訊埠號碼。 Cmdlet 會嘗試對目標上的指定埠進行 TCP 連線。
如果可以建立連線, $True
則會傳回 。
如果無法建立連線, $False
則會傳回 。
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-TimeoutSeconds
設定測試的逾時值。 如果逾時到期前未收到回應,測試就會失敗。 預設值為五秒。
此參數是在 PowerShell 6.0 中引進的。
Type: | Int32 |
Position: | Named |
Default value: | 5 seconds |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Traceroute
導致 Cmdlet 執行追蹤路由測試。 使用此參數時,Cmdlet 會 TestConnectionCommand+TraceStatus
傳回 物件。
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
輸入
None
您無法使用管線將物件傳送至此 Cmdlet。
輸出
TestConnectionCommand+PingStatus
根據預設,此 Cmdlet 會針對每個 Ping 回復傳回 Test 連線 ionCommand+PingStatus 物件。
TestConnectionCommand+TraceStatus
當您使用 Traceroute 參數時,此 Cmdlet 會針對路由上的每個 Ping 回復傳回 Test 連線 ionCommand+TraceStatus 物件。
當您使用 Quiet 或 TcpPort 參數時,此 Cmdlet 會 傳回布爾 值。 如果 Cmdlet 測試多個連線,則會傳回布爾值的數位。
TestConnectionCommand+PingMtuStatus
當您使用 MtuSize 參數時,此 Cmdlet 會針對每個 Ping 回復傳回 Test 連線 ionCommand+PingMtuStatus 物件。
相關連結
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應