Test-Connection
向一台或多台電腦發送 ICMP 迴波請求封包或 ping。
語法
DefaultPing (預設值)
Test-Connection
[-TargetName] <string[]>
[-Ping]
[-IPv4]
[-IPv6]
[-ResolveDestination]
[-Source <string>]
[-MaxHops <int>]
[-Count <int>]
[-Delay <int>]
[-BufferSize <int>]
[-DontFragment]
[-Quiet]
[-TimeoutSeconds <int>]
[<CommonParameters>]
RepeatPing
Test-Connection
[-TargetName] <string[]>
-Repeat
[-Ping]
[-IPv4]
[-IPv6]
[-ResolveDestination]
[-Source <string>]
[-MaxHops <int>]
[-Delay <int>]
[-BufferSize <int>]
[-DontFragment]
[-Quiet]
[-TimeoutSeconds <int>]
[<CommonParameters>]
TraceRoute
Test-Connection
[-TargetName] <string[]>
-Traceroute
[-IPv4]
[-IPv6]
[-ResolveDestination]
[-Source <string>]
[-MaxHops <int>]
[-Quiet]
[-TimeoutSeconds <int>]
[<CommonParameters>]
MtuSizeDetect
Test-Connection
[-TargetName] <string[]>
-MtuSize
[-IPv4]
[-IPv6]
[-ResolveDestination]
[-Quiet]
[-TimeoutSeconds <int>]
[<CommonParameters>]
TcpPort
Test-Connection
[-TargetName] <string[]>
-TcpPort <int>
[-IPv4]
[-IPv6]
[-ResolveDestination]
[-Source <string>]
[-Count <int>]
[-Delay <int>]
[-Repeat]
[-Quiet]
[-TimeoutSeconds <int>]
[-Detailed]
[<CommonParameters>]
Description
Test-Connection指令小程式會將網際網路控制訊息協定(ICMP)迴波請求封包(ping)傳送到一台或多台遠端電腦,並回傳回應回應。 你可以利用這個指令小程式來判斷某台電腦是否能透過 IP 網路被聯繫。
你可以用參數 Test-Connection 來指定發送與接收電腦,將指令作為背景工作執行,設定逾時與 ping 次數,以及設定連線與驗證。
與熟悉的 ping 指令不同,它 Test-Connection 會回傳一個 TestConnectionCommand+PingStatus 物件,你可以在 PowerShell 中調查。
Quiet 參數會在 System.Boolean 物件中回傳每個測試連線的布林值。 若測試多個連線,會回傳布 林 值陣列。
範例
範例 1:向遠端電腦發送 echo 請求
此範例是從本地電腦向 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 物件會傳送到輸出串流,目標機器每回覆一個物件。
範例 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 參數指定向 Server01 電腦發送三次 ping ,延遲為 2 秒。
當延遲回應預期會比平常更久時,例如跳數延長或網路流量過高,你可能會使用這些選項。
範例四:將測試作為背景工作執行
這個範例展示了如何將指令作為 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 }
Test-Connection指令小程式會ping電腦,Server01並附有靜音參數。
若四個 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
Test-Connection此指令以 Traceroute 參數呼叫。 結果為 [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。
參數屬性
| 類型: | Int32 |
| 預設值: | 32 |
| 支援萬用字元: | False |
| 不要顯示: | False |
| 別名: | Size, Bytes, 理學士 |
參數集
DefaultPing
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
RepeatPing
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-Count
指定要發送的 echo 請求數量。 預設值為 4。
參數屬性
| 類型: | Int32 |
| 預設值: | 4 |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
DefaultPing
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
TcpPort
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-Delay
指定 ping 間隔,單位為秒。
參數屬性
| 類型: | Int32 |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
DefaultPing
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
RepeatPing
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
TcpPort
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-Detailed
當你使用 Detailed 參數時,這個 cmdlet 會回傳關於 TCP 連線嘗試狀態的詳細資訊。
此參數已在PowerShell 7.4中新增。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | False |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
TcpPort
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-DontFragment
這個參數會在 IP 標頭中設定 Don't Fragment 旗標。 你可以用這個參數搭配 BufferSize 參數來測試 Path MTU 大小。 欲了解更多關於 Path MTU 的資訊,請參閱維基百科中的 Path MTU 發現 條目。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | False |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
DefaultPing
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
RepeatPing
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-IPv4
強制 cmdlet 在測試時使用 IPv4 協定。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | False |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-IPv6
強制指令小程式在測試中使用 IPv6 協定。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | False |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-MaxHops
設定 ICMP 請求訊息可傳送的最大跳數。 預設值由作業系統控制。 Windows 10 及以上的預設值是 128 跳。
參數屬性
| 類型: | Int32 |
| 預設值: | 128 |
| 支援萬用字元: | False |
| 不要顯示: | False |
| 別名: | Ttl, TimeToLive, Hops |
參數集
DefaultPing
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
RepeatPing
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
TraceRoute
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-MtuSize
此參數用來發現路徑 MTU 大小。 cmdlet 回傳一個 PingReply#MTUSize 物件,包含目標路徑 MTU 大小。 欲了解更多關於 Path MTU 的資訊,請參閱維基百科中的 Path MTU 發現 條目。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | False |
| 支援萬用字元: | False |
| 不要顯示: | False |
| 別名: | MtuSizeDetect |
參數集
MtuSizeDetect
| Position: | Named |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-Ping
會讓指令長執行 ping 測試。 這是指令長的預設模式 Test-Connection 。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | True |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
DefaultPing
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
RepeatPing
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-Quiet
Quiet 參數會回傳一個布林值。 使用此參數可抑制所有錯誤。
每個測試的連線都會回傳一個 布林 值。 若 TargetName 參數指定多台電腦,則回傳一個 布林 值陣列。
若對特定目標 有任何 ping成功, $true 則會回傳。
若對特定目標 的所有 ping 均失敗, $false 則回傳。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | False |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-Repeat
會讓 cmdlet 持續發送 ping 請求。 當 TargetName 的值為目標陣列時,指令本只重複第一個目標的 ping 請求。 它忽略剩餘的目標。 這個參數不能和 計數 參數一起使用。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | False |
| 支援萬用字元: | False |
| 不要顯示: | False |
| 別名: | 連續的 |
參數集
RepeatPing
| Position: | Named |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
TcpPort
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-ResolveDestination
導致指令本嘗試解析目標的 DNS 名稱。 當與 Traceroute 參數結合使用時,若可能,也會取得所有中介主機的 DNS 名稱。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | False |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-Source
指定 ping 來源的電腦名稱。 接著進入一個逗號分隔的電腦名稱清單。 預設值為本機電腦。
Note
此參數在 PowerShell 6 版及以上版本中不被支援。 提供此參數會產生錯誤。
參數屬性
| 類型: | String |
| 預設值: | Local computer |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
DefaultPing
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
RepeatPing
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
TraceRoute
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
TcpPort
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-TargetName
指定要測試的電腦。 輸入電腦名稱或 IP 位址,格式為 IPv4 或 IPv6。
參數屬性
| 類型: | String[] |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
| 別名: | 電腦名稱 |
參數集
(All)
| Position: | 0 |
| 必要: | True |
| 來自管線的值: | True |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
-TcpPort
指定用於 TCP 連線測試的目標端 TCP 埠號。
指令小程式嘗試將 TCP 連線至目標上指定的埠口。
- 當建立連結時,指令長會回傳
$true。 - 若未建立連結,指令匣會回傳
$false。
參數屬性
| 類型: | Int32 |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
TcpPort
| Position: | Named |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-TimeoutSeconds
設定測試的逾時值。 若逾時期內未收到回應,測試即告失敗。 預設是五秒鐘。
此參數是在 PowerShell 6.0 中引進的。
參數屬性
| 類型: | Int32 |
| 預設值: | 5 seconds |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-Traceroute
會讓指令檔執行 traceroute 測試。 當使用此參數時,指令長會回傳一個 TestConnectionCommand+TraceStatus 物件。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | False |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
TraceRoute
| Position: | Named |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
CommonParameters
此 cmdlet 支援常見參數:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 如需詳細資訊,請參閱 about_CommonParameters。
輸入
None
您不能將物件透過管道傳送到此 Cmdlet。
輸出
Microsoft.PowerShell.Commands.TestConnectionCommand+PingStatus
預設情況下,此 cmdlet 會為每個 ping 回覆回傳 一個 TestConnectionCommand+PingStatus 物件。
Microsoft.PowerShell.Commands.TestConnectionCommand+TraceStatus
當你使用 Traceroute 參數時,這個 cmdlet 會為沿路由的每個 ping 回覆回傳 一個 TestConnectionCommand+TraceStatus 物件。
Boolean
當你使用 Quiet 或 TcpPort 參數時,這個 cmdlet 會回傳一個 布林值 。 如果 cmdlet 測試多個連線,會回傳一個布 林 值陣列。
Microsoft.PowerShell.Commands.TestConnectionCommand+PingMtuStatus
當你使用 MtuSize 參數時,這個 cmdlet 會為每個 ping 回覆回傳 TestConnectionCommand+PingMtuStatus 物件。
Microsoft.PowerShell.Commands.TestConnectionCommand+TcpPortStatus
當你使用 Detailed 參數時,這個 cmdlet 會回傳一個 TestConnectionCommand+TcpPortStatus 物件,顯示 TCP 連線的狀態。
備註
在 Linux 上,使用 BufferSize 參數或任何與 MtuSize 參數組合,導致非預設緩衝區大小為 32 位元組的參數,可能需要 sudo。 在這些情況下,會Test-Command提出例外並附上訊息表示需要。sudo