共用方式為


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>]

Description

Test-Connection Cmdlet 會將因特網控制訊息通訊協定 (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:以背景工作身分執行測試

此範例示範如何將 Test-Connection 命令當做 PowerShell 背景工作來執行。

$job = Test-Connection -ComputerName (Get-Content Servers.txt) -AsJob
if ($job.JobStateInfo.State -ne "Running") {$Results = Receive-Job $job}

Test-Connection 命令會偵測企業中的許多電腦。 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 遠端電腦許可權的使用者帳戶,以及 模擬 參數,將模擬層級變更為 Identify

範例 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 會以背景工作的形式執行。

若要使用此參數,本機和遠端電腦必須設定為遠端處理,而且,在 Windows Vista 和更新版本的 Windows 作業系統上,您必須使用 [以系統管理員身分執行] 選項 來開啟 PowerShell 。 如需詳細資訊,請參閱 about_Remote_Requirements

當您指定 AsJob 參數時,命令會立即傳回代表背景工作的物件。 您可以在作業完成時繼續在工作階段中工作。 作業會在本機計算機上建立,而遠端計算機的結果會自動傳回至本機計算機。 若要取得作業結果,請使用 Receive-Job Cmdlet。

如需 PowerShell 背景工作的詳細資訊,請參閱 about_Jobsabout_Remote_Jobs

類型:SwitchParameter
Position:Named
預設值:False
必要:False
接受管線輸入:False
接受萬用字元:False

-Authentication

指定用於 WMI 連線的驗證層級。 Test-Connection 使用 WMI。

有效值如下所示:

  • 未變更:驗證層級與上一個命令相同。
  • 預設:Windows 驗證。
  • :無 COM 驗證。
  • Connect:連線層級 COM 驗證。
  • 通話:通話層級 COM 驗證。
  • 封包:封包層級 COM 驗證。
  • PacketIntegrity:封包完整性層級 COM 驗證。
  • PacketPrivacy:封包隱私權層級 COM 驗證。

預設值為 Packet,其列舉值為 4。 如需此參數值的詳細資訊,請參閱 AuthenticationLevel 列舉。

類型:AuthenticationLevel
接受的值:Default, None, Connect, Call, Packet, PacketIntegrity, PacketPrivacy, Unchanged
Position:Named
預設值:Packet (enumerated value of 4)
必要:False
接受管線輸入:False
接受萬用字元:False

-BufferSize

指定使用此命令傳送之緩衝區的大小,以位元組為單位。 預設值為 32。

類型:Int32
別名:Size, Bytes, BS
Position:Named
預設值:32
必要:False
接受管線輸入:False
接受萬用字元:False

-ComputerName

指定要 Ping 的電腦。 以IPv4或IPv6格式輸入電腦名稱或輸入IP位址。 不允許通配符。 這是必要參數。

此參數不依賴 PowerShell 遠端處理。 即使您的電腦未設定為執行遠端命令,您也可以使用 ComputerName 參數。

類型:String[]
別名:CN, IPAddress, __SERVER, Server, Destination
Position:0
預設值:None
必要:True
接受管線輸入:True
接受萬用字元:False

-Count

指定要傳送的回應要求數目。 預設值為 4。

類型:Int32
Position:Named
預設值:4
必要:False
接受管線輸入:False
接受萬用字元:False

-Credential

指定有權從來源電腦傳送 Ping 要求的用戶帳戶。 輸入用戶名稱,例如User01或Domain01\User01,或輸入 PSCredential 物件,例如 Get-Credential Cmdlet 中的一個。

只有在命令中使用 Source 參數時,Credential 參數才有效。 認證不會影響目的地計算機。

類型:PSCredential
Position:Named
預設值:Current user
必要:False
接受管線輸入:False
接受萬用字元:False

-Delay

指定 ping 之間的間隔,以秒為單位。

類型:Int32
Position:Named
預設值:1 (second)
必要:False
接受管線輸入:False
接受萬用字元:False

-Impersonation

指定此 Cmdlet 呼叫 WMI 時要使用的模擬層級。 Test-Connection 使用 WMI。

此參數可接受的值如下:

  • 預設。 默認模擬。
  • 匿名。 隱藏呼叫者的身分識別。
  • 識別。 允許物件查詢呼叫端的認證。
  • 模擬。 允許物件使用呼叫端的認證。

預設值為 Impersonate

類型:ImpersonationLevel
接受的值:Default, Anonymous, Identify, Impersonate, Delegate
Position:Named
預設值:Impersonate
必要:False
接受管線輸入:False
接受萬用字元:False

-Quiet

Quiet 參數會傳回 system.Boolean 物件中 布爾值 布爾值。 使用此參數會隱藏所有錯誤。

每個測試的連接都會傳回 布爾值 值。 如果 ComputerName 參數指定多部計算機,則會傳回 布爾值 值的陣列。

如果 任何 ping 成功,則會傳回 $True

如果 所有 ping 失敗,則會傳回 $False

類型:SwitchParameter
Position:Named
預設值:False
必要:False
接受管線輸入:False
接受萬用字元:False

-Source

指定 Ping 來源的電腦名稱。 輸入以逗號分隔的計算機名稱清單。 預設值為本機計算機。

類型:String[]
別名:FCN, SRC
Position:1
預設值:Local computer
必要:True
接受管線輸入:False
接受萬用字元:False

-ThrottleLimit

指定可以建立以執行此命令的並行連線數目上限。 如果您省略此參數或輸入 0 值,則會使用預設值 32。

節流限制僅適用於目前的命令,不適用於會話或計算機。

類型:Int32
Position:Named
預設值:32
必要:False
接受管線輸入:False
接受萬用字元:False

-TimeToLive

指定封包可以轉送的次數上限。 對於閘道中的每個躍點,路由器等。TimeToLive 值會減少一個。 零時會捨棄封包,並傳回錯誤。 在 Windows中,預設值為 128TimeToLive 參數的別名是 TTL

類型:Int32
別名:TTL
Position:Named
預設值:128 in Windows
必要:False
接受管線輸入:False
接受萬用字元:False

輸入

None

您無法使用管線將輸入傳送至此 Cmdlet。

輸出

ManagementObject

如果您指定 AsJob 參數,此 Cmdlet 會傳回作業物件。

如果您指定 Quiet 參數,則會傳回 布爾值 值。 如果測試了多個連線,則會傳回 布爾值陣列 值。 否則,Test-Connection 會針對每個 ping 傳回 Win32_PingStatus 物件。

備註

此 Cmdlet 會使用 Win32_PingStatus 類別。 Get-WMIObject Win32_PingStatus 命令相當於 Test-Connection 命令。

PowerShell 3.0 中引進了 Source 參數集。