共用方式為


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 會傳回您可以在 PowerShell 中調查的 TestConnectionCommand+PingStatus 物件。 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 參數會指定測試的通訊協定。

一系列的 TestConnectionCommand+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:只有在連線測試成功時,才 Create 會話

這個範例只有在至少一個傳送到計算機的 ping 成功時,才會在 Server01 計算機上建立會話。

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

Cmdlet 會 Test-Connection 偵測 Server01 計算機,並提供 Quiet 參數。 如果四個 Ping 中的任何一個成功,則產生的值為 $True 。 如果沒有任何 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] 物件,會輸出至 Success 輸出數據流。

參數

-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 參數來測試 Path 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 要求。 此參數無法與 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, TestConnectionCommand+TraceStatus, Boolean, TestConnectionCommand+PingMtuStatus

根據預設, Test-Connection 會針對每個 Ping 回復傳回 TestConnectionCommand+PingStatus 物件。

如果您指定 Traceroute 參數,Cmdlet 會針對路由上的每個 Ping 回復傳回 TestConnectionCommand+TraceStatus 物件。

如果您指定 QuietTcpPort 參數,則會傳回 布爾 值。 如果測試多個連接,則會傳回 布爾 值的陣列。