Test-Connection

將ICMP回應要求封包或 Ping 傳送至一或多部電腦。

Syntax

Test-Connection
    [-AsJob]
    [-DcomAuthentication <AuthenticationLevel>]
    [-WsmanAuthentication <String>]
    [-Protocol <String>]
    [-BufferSize <Int32>]
    [-ComputerName] <String[]>
    [-Count <Int32>]
    [-Impersonation <ImpersonationLevel>]
    [-ThrottleLimit <Int32>]
    [-TimeToLive <Int32>]
    [-Delay <Int32>]
    [<CommonParameters>]
Test-Connection
    [-AsJob]
    [-DcomAuthentication <AuthenticationLevel>]
    [-WsmanAuthentication <String>]
    [-Protocol <String>]
    [-BufferSize <Int32>]
    [-ComputerName] <String[]>
    [-Count <Int32>]
    [-Credential <PSCredential>]
    [-Source] <String[]>
    [-Impersonation <ImpersonationLevel>]
    [-ThrottleLimit <Int32>]
    [-TimeToLive <Int32>]
    [-Delay <Int32>]
    [<CommonParameters>]
Test-Connection
    [-DcomAuthentication <AuthenticationLevel>]
    [-WsmanAuthentication <String>]
    [-Protocol <String>]
    [-BufferSize <Int32>]
    [-ComputerName] <String[]>
    [-Count <Int32>]
    [-Impersonation <ImpersonationLevel>]
    [-TimeToLive <Int32>]
    [-Delay <Int32>]
    [-Quiet]
    [<CommonParameters>]

Description

Cmdlet 會將 Test-Connection 因特網控制訊息通訊協定 (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會使用 ComputerName 參數來指定 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 會偵測企業中的許多電腦。 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 遠端電腦之許可權的用戶帳戶,以及將模擬層級變更為 [識別] 的模擬層級。

範例 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

Type:SwitchParameter
Position:Named
Default value:False
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 參數。

注意

ComputerName 參數會重新命名為 PowerShell 6.0 和更新版本中的 TargetName

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

-DcomAuthentication

指定此 Cmdlet 搭配 WMI 使用的驗證層級。 Test-Connection 使用 WMI。 此參數可接受的值為:

  • Default。 Windows 驗證
  • None: 沒有 COM 驗證
  • 連線。 連線 層級 COM 驗證
  • 呼叫。 呼叫層級 COM 驗證
  • 封包。 封包層級 COM 驗證
  • PacketIntegrity。 封包完整性層級 COM 驗證
  • PacketPrivacy。 封包隱私權層級 COM 驗證
  • 未變更。 與上一個命令相同

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

Type:AuthenticationLevel
Aliases:Authentication
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

-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。 默認模擬。
  • Anonymous。 隱藏呼叫者的身分識別。
  • 識別。 允許物件查詢呼叫端的認證。
  • 模擬。 允許物件使用呼叫端的認證。

預設值為 Impersonate

Type:ImpersonationLevel
Accepted values:Default, Anonymous, Identify, Impersonate, Delegate
Position:Named
Default value:Impersonate
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Protocol

指定通訊協定。 此參數可接受的值為 DCOM 和 WSMan。

Type:String
Accepted values:DCOM, WSMan
Position:Named
Default value:None
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

-WsmanAuthentication

指定當此 Cmdlet 使用 WSMan 通訊協定時,用來驗證使用者認證的機制。 此參數可接受的值為:

  • 基本
  • CredSSP
  • 預設
  • Digest
  • Kerberos
  • 洽談。

預設值為 Default。

如需此參數值的詳細資訊,請參閱 AuthenticationMechanism 列舉

注意:認證安全性服務提供者 (CredSSP) 驗證,其中使用者認證會傳遞至要驗證的遠端計算機,是針對需要驗證多個資源的命令所設計,例如存取遠端網路共用。 此機制會增加遠端作業的安全性風險。 如果遠端電腦遭到入侵,傳遞給它的認證可用來控制網路會話。

此參數是在 Windows PowerShell 3.0 中引進的。

Type:String
Accepted values:Default, Basic, Negotiate, CredSSP, Digest, Kerberos
Position:Named
Default value:Default
Required:False
Accept pipeline input:False
Accept wildcard characters:False

輸入

None

您無法使用管線將物件傳送至此 Cmdlet。

輸出

ManagementObject

根據預設,此 Cmdlet 會針對每個 Ping 回復傳 回Win32_PingStatus 物件。

System.Management.Automation.RemotingJob

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

Boolean

當您使用 Quiet 參數時,這會傳 回布爾 值。 如果 Cmdlet 測試多個連線,則會傳回布爾值的數位。

備註

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

Source 參數集是在PowerShell 3.0中引進的。