Test-Connection
將ICMP回應要求封包或 Ping 傳送至一或多部電腦。
語法
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 會以背景工作的形式執行。 當您指定 AsJob 參數時,命令會立即傳回代表背景作業的物件。 您可以在作業完成時繼續在工作階段中工作。 若要取得作業結果,請使用 Receive-Job
Cmdlet。
如需PowerShell背景工作的詳細資訊,請參閱 about_Jobs 和 about_Remote_Jobs。
類型: | SwitchParameter |
Position: | Named |
預設值: | False |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-BufferSize
指定使用此命令傳送之緩衝區的大小,以位元組為單位。 預設值為 32。
類型: | Int32 |
別名: | Size, Bytes, BS |
Position: | Named |
預設值: | 32 |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-ComputerName
指定要 Ping 的電腦。 以IPv4或IPv6格式輸入電腦名稱或輸入IP位址。 不允許通配符。 此為必要參數。
此參數不依賴 PowerShell 遠端處理。 即使您的電腦未設定為執行遠端命令,您也可以使用 ComputerName 參數。
注意
ComputerName 參數會重新命名為 PowerShell 6.0 和更新版本中的 TargetName。
類型: | 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 物件,例如 Cmdlet 中的 Get-Credential
一個。
只有在命令中使用Source參數時,Credential 參數才有效。 認證不會影響目的地計算機。
類型: | PSCredential |
Position: | Named |
預設值: | Current user |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-DcomAuthentication
指定此 Cmdlet 搭配 WMI 使用的驗證層級。
Test-Connection
使用 WMI。
此參數可接受的值為:
- Default。 Windows 驗證
- None: 沒有 COM 驗證
- 連線。 線上層級 COM 驗證
- 呼叫。 呼叫層級 COM 驗證
- 封包。 封包層級 COM 驗證
- PacketIntegrity。 封包完整性層級 COM 驗證
- PacketPrivacy。 封包隱私權層級 COM 驗證
- 未變更。 與上一個命令相同
默認值為 Packet ,其列舉值為 4。 如需此參數值的詳細資訊,請參閱 AuthenticationLevel 列舉。
類型: | AuthenticationLevel |
別名: | Authentication |
接受的值: | Default, None, Connect, Call, Packet, PacketIntegrity, PacketPrivacy, Unchanged |
Position: | Named |
預設值: | Packet (enumerated value of 4) |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-Delay
指定 ping 之間的間隔,以秒為單位。
類型: | Int32 |
Position: | Named |
預設值: | 1 (second) |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-Impersonation
指定此 Cmdlet 呼叫 WMI 時要使用的模擬層級。 Test-Connection
使用 WMI。
此參數可接受的值如下:
- Default。 默認模擬。
- Anonymous。 隱藏呼叫者的身分識別。
- 識別。 允許物件查詢呼叫端的認證。
- 模擬。 允許物件使用呼叫端的認證。
預設值為 Impersonate。
類型: | ImpersonationLevel |
接受的值: | Default, Anonymous, Identify, Impersonate, Delegate |
Position: | Named |
預設值: | Impersonate |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-Protocol
指定通訊協定。 此參數可接受的值為 DCOM 和 WSMan。
類型: | String |
接受的值: | DCOM, WSMan |
Position: | Named |
預設值: | None |
必要: | 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 中,預設值為 128。 TimeToLive 參數的別名為 TTL。
類型: | Int32 |
別名: | TTL |
Position: | Named |
預設值: | 128 in Windows |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-WsmanAuthentication
指定當此 Cmdlet 使用 WSMan 通訊協定時,用來驗證使用者認證的機制。 此參數可接受的值為:
- 基本
- CredSSP
- 預設
- Digest
- Kerberos
- 談判。
預設值為 Default。
如需此參數值的詳細資訊,請參閱 AuthenticationMechanism 列舉。
注意:認證安全性服務提供者 (CredSSP) 驗證,其中使用者認證會傳遞至要驗證的遠端計算機,是針對需要驗證多個資源的命令所設計,例如存取遠端網路共用。 此機制會增加遠端作業的安全性風險。 如果遠端電腦遭到入侵,傳遞給它的認證可用來控制網路會話。
此參數是在 Windows PowerShell 3.0 中引進的。
類型: | String |
接受的值: | Default, Basic, Negotiate, CredSSP, Digest, Kerberos |
Position: | Named |
預設值: | Default |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
輸入
None
您無法使用管線將物件傳送至此 Cmdlet。
輸出
根據預設,此 Cmdlet 會針對每個 Ping 回復傳 回Win32_PingStatus 物件。
System.Management.Automation.RemotingJob
如果您指定 AsJob 參數,此 Cmdlet 會傳回作業物件。
當您使用 Quiet 參數時,這會傳 回布爾 值。 如果 Cmdlet 測試多個連線,則會傳回布爾值的數位。
備註
此 Cmdlet 會使用 Win32_PingStatus 類別。 Get-WMIObject Win32_PingStatus
命令相當於Test-Connection
命令。
Source 參數集是在PowerShell 3.0中引進的。