PowerShell Cmdlet - Test-Connection
 記事記号:[mh1917] 初版:2011/Sep/30

この文書は、Windows PowerShellのヘルプ機能で表示される内容を再構成したものです。

名前
    Test-Connection
    
概要
    ICMP エコー要求パケット (ping) を 1 台以上のコンピューターに送信します。
    
構文
    Test-Connection [-ComputerName] <string[]> [[-Source] <string[]>] [-AsJob] [
    -Authentication {Default | None | Connect | Call | Packet | PacketIntegrity 
    | PacketPrivacy | Unchanged}] [-BufferSize <int>] [-Count <int>] [-Credentia
    l <PSCredential>] [-Delay <int>] [-Impersonation {Default | Anonymous | Iden
    tify | Impersonate | Delegate}] [-Quiet] [-ThrottleLimit <int>] [-TimeToLive 
    <int>] [<CommonParameters>]
    
説明
    Test-Connection コマンドレットは、インターネット制御メッセージ プロトコル (I
    CMP) のエコー要求パケット ("ping") を 1 台以上のリモート コンピューターに送
    信して、エコー応答を返します。このコマンドレットを使用すると、インターネット 
    プロトコル (IP) ネットワークを介して特定のコンピューターにアクセスできるかど
    うかを判断できます。
    
    Test-Connection のパラメーターを使用して、送信側と受信側の両方のコンピュータ
    ーの指定、バックグラウンド ジョブとしてのコマンドの実行、タイムアウトと ping 
    の数の設定、および接続と認証の構成を行うことができます。
    
    従来の "ping" コマンドとは異なり、Test-Connection は Windows PowerShell で調
    査可能な Win32_PingStatus オブジェクトを返しますが、Quiet パラメーターを使用
    するとブール値のみを返すように強制できます。
    
パラメーター
    -AsJob [<SwitchParameter>]
        バックグラウンド ジョブとしてコマンドを実行します。
        
        注: このパラメーターを使用するには、ローカル コンピューターおよびリモー
        ト コンピューターをリモート処理用に構成する必要があります。また、Windows 
        Vista 以降のバージョンの Windows の場合は、Windows PowerShell を開く際に 
        [管理者として実行] を指定する必要があります。詳細については、「about_Rem
        ote_Requirements」を参照してください。
        
        AsJob パラメーターを使用すると、バックグラウンド ジョブを表すオブジェク
        トが即座に返されます。ジョブが完了しても、引き続きセッションで作業できま
        す。ジョブは、ローカル コンピューターで作成され、リモート コンピューター
        での結果は自動的にローカル コンピューターに返されます。ジョブの結果を取
        得するには、Receive-Job コマンドレットを使用します。
        
        Windows PowerShell のバックグラウンド ジョブの詳細については、「about_Jo
        bs」および「about_Remote_Jobs」を参照してください。
        
        必須                         false
        位置                         named
        既定値                       False
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -Authentication <AuthenticationLevel>
        WMI 接続に使用する認証レベルを指定します。Test-Connection は WMI を使用
        します。
        
        有効な値は次のとおりです。
        
        Unchanged:       認証レベルは前のコマンドと同じです。
        Default:         Windows 認証。
        None:            COM 認証なし。
        Connect:         接続レベルの COM 認証。
        Call:            呼び出しレベルの COM 認証。
        Packet:          パケット レベルの COM 認証。
        PacketIntegrity: パケット整合性レベルの COM 認証。
        PacketPrivacy:   パケット プライバシー レベルの COM 認証。
        
        必須                         false
        位置                         named
        既定値                       4
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -BufferSize <int>
        このコマンドで送信されるバッファーのサイズをバイト単位で指定します。既定
        値は 32 です。
        
        必須                         false
        位置                         named
        既定値                       32
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -ComputerName <string[]>
        ping するコンピューターを指定します。コンピューター名を入力するか、IP ア
        ドレスを IPv4 または IPv6 形式で入力します。ワイルドカード文字は使用でき
        ません。このパラメーターは必須です。
        
        このパラメーターは、Windows PowerShell リモート処理に依存しません。コン
        ピューターがリモート コマンドを実行するように構成されていない場合でも、C 
        omputerName パラメーターを使用できます。
        
        必須                         true
        位置                         1
        既定値                       
        パイプライン入力を許可する   true (ByPropertyName)
        ワイルドカード文字を許可する false
        
    -Count <int>
        送信するエコー要求の数を指定します。既定値は 4 です。
        
        必須                         false
        位置                         named
        既定値                       4
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -Credential <PSCredential>
        この処理を実行するアクセス許可を持つユーザー アカウントを指定します。"Us
        er01" や "Domain01\User01" のようなユーザー名を入力するか、PSCredential 
        オブジェクト (Get-Credential コマンドレットから返されるものなど) を入力
        します。
        
        必須                         false
        位置                         named
        既定値                       現在のユーザー
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -Delay <int>
        ping 間の間隔を秒単位で指定します。
        
        必須                         false
        位置                         named
        既定値                       1 (秒)
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -Impersonation <ImpersonationLevel>
        WMI を呼び出すときに使用する偽装レベルを指定します。Test-Connection は W
        MI を使用します。既定値は "Impersonate" です。
        
        有効な値は次のとおりです。
        
        Default:      既定の偽装。
        Anonymous:    呼び出し元の ID は非表示になります。
        Identify:     オブジェクトによる呼び出し元の資格情報のクエリが許可されま
                      す。
        Impersonate:  オブジェクトによる呼び出し元の資格情報の使用が許可されます。
        
        必須                         false
        位置                         named
        既定値                       3
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -Quiet [<SwitchParameter>]
        エラーはすべて表示せず、ping が 1 回でも成功した場合は $True を返し、す
        べて失敗した場合は $False を返します。
        
        必須                         false
        位置                         named
        既定値                       False
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -Source <string[]>
        ping の送信元コンピューターの名前を指定します。コンピューター名のコンマ
        区切り一覧を入力します。既定値はローカル コンピューターです。
        
        必須                         false
        位置                         2
        既定値                       ローカル コンピューター
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -ThrottleLimit <int>
        このコマンドを実行するために確立できる最大同時接続数を指定します。このパ
        ラメーターを省略した場合、または値 0 を入力した場合は、既定値の 32 が使
        用されます。
        
        スロットル制限は現在のコマンドのみに適用され、セッションまたはコンピュー
        ターには適用されません。
        
        必須                         false
        位置                         named
        既定値                       32
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -TimeToLive <int>
        各エコー要求パケット ("ping") が有効である最大時間を秒単位で指定します。
        既定値は 80 (秒) です。TimeToLive パラメーターのエイリアスは TTL です。
        
        必須                         false
        位置                         named
        既定値                       80
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    <CommonParameters>
        このコマンドレットは、次の共通パラメーターをサポートします: Verbose、
        Debug、ErrorAction、ErrorVariable、WarningAction、WarningVariable、
        OutBuffer、および OutVariable。詳細については、
        「get-help about_commonparameters」と入力してヘルプを参照してください。
    
入力
    なし
        パイプを使用してこのコマンドレットに入力を渡すことはできません。
    
出力
    System.Management.ManagementObject#root\cimv2\Win32_PingStatus、System.Manag
    ement.Automation.RemotingJob、System.Boolean
        AsJob パラメーターを使用すると、コマンドレットはジョブ オブジェクトを返
        します。Quiet パラメーターを使用すると、ブール値を返します。それ以外の場
        合は、このコマンドレットが各 ping ごとに Win32_PingStatus オブジェクトを
        返します。
    
メモ
        このコマンドレットでは Win32_PingStatus クラスを使用します。"get-wmiojbe
        ct win32_pingstatus" コマンドを実行すると、Test-Connection コマンドを実
        行した場合と同じ結果が返されます。
        
    -------------------------- 例 1 --------------------------
    
    C:\PS>test-connection server01
    
    Source        Destination     IPV4Address     IPV6Address  Bytes    Time(ms)
    ------        -----------     -----------     -----------  -----    --------
    ADMIN1        Server01        157.59.137.44                32       0
    ADMIN1        Server01        157.59.137.44                32       0
    ADMIN1        Server01        157.59.137.44                32       0
    ADMIN1        Server01        157.59.137.44                32       1
    
    説明
    -----------
    このコマンドは、エコー要求パケット ("ping") をローカル コンピューターから Se
    rver01 コンピューターに送信します。ComputerName パラメーターを使用して Serve
    r01 コンピューターを指定しますが、オプションのパラメーター名は省略します。
    
    -------------------------- 例 2 --------------------------
    
    C:\PS>test-connection -computername server01, server02, server12 -credential 
    domain01\user01
    
    説明
    -----------
    このコマンドは、ping をローカル コンピューターから複数のリモート コンピュー
    ターに送信します。Credential パラメーターを使用して、すべてのリモート コンピ
    ューターに ping するアクセス許可を持つユーザー アカウントを指定します。
    
    -------------------------- 例 3 --------------------------
    
    C:\PS>test-connection -source Server02, Server 12, localhost -computername Se
    rver01
    
    説明
    -----------
    このコマンドは、ping をさまざまな送信元コンピューターから 1 台のリモート コ
    ンピューター Server01 に送信します。複数のポイントからの接続の待機時間をテス
    トするには、このコマンド形式を使用します。
    
    -------------------------- 例 4 --------------------------
    
    C:\PS>test-connection -computername Server01 -count 3 -delay 2 -TTL 256 -buf
    fersize 256 -throttle 32
    
    説明
    -----------
    このコマンドは、ping を 3 回、ローカル コンピューターから Server01 コンピュ
    ーターに送信します。Test-Connection のパラメーターを使用して、このコマンドを
    カスタマイズします。
    
    ホップ数が増えたか、またはネットワーク トラフィックが増大したかのいずれかが
    原因で、ping 応答が通常より遅れることが予想される場合は、このコマンド形式を
    使用します。
    
    -------------------------- 例 5 --------------------------
    
    C:\PS>$job = test-connection -computername (get-content servers.txt) -asjob
    
    C:\PS> if ($job.jobstateinfo.state -ne "Running") {$results = receive-job $j
    ob}
    
    説明
    -----------
    この例では、Test-Connection コマンドを Windows PowerShell のバックグラウンド 
    ジョブとして実行する方法を示します。
    
    最初のコマンドは、Test-Connection コマンドレットを使用して、社内にある多くの
    コンピューターに ping します。ComputerName パラメーターの値は、Get-Content 
    コマンドです。このコマンドは Servers.txt ファイルからコンピューター名の一覧
    を読み取ります。また、AsJob パラメーターを使用して、バックグラウンド ジョブ
    としてコマンドを実行します。
    
    2 番目のコマンドは、ジョブが実行中でないことをチェックします。実行中でなけれ
    ば、Receive-Job コマンドを使用して結果を取得し、$results 変数に保存します。
    
    -------------------------- 例 6 --------------------------
    
    C:\PS>test-connection Server55 -credential domain55\user01 -impersonation Id
    entify
    
    説明
    -----------
    このコマンドは、Test-Connection コマンドレットを使用して、リモート コンピュー
    ターに ping します。Credential パラメーターを使用して、リモート コンピュータ
    ーに ping するアクセス許可を持つユーザー アカウントを指定します。また、Impers
    onation パラメーターを使用して、偽装レベルを "Identify" に変更します。
    
    -------------------------- 例 7 --------------------------
    
    C:\PS>if (test-connection -computername Server01 -quiet) {new-pssession Serve
    r01}
    
    説明
    -----------
    このコマンドは、コンピューターに送られた ping が少なくとも 1 回成功した場合に
    のみ Server01 で PSSession を作成します。
    
    このコマンドは Test-Connection コマンドレットを使用して、Server01 コンピュータ
    ーに ping します。このコマンドは Win32_PingStatus オブジェクトの代わりに、ブー
    ル値を返す Quiet パラメーターを使用します。4 回の ping のうち 1 回でも成功すれ
    ば値 $True を返し、成功しなかった場合は $False を返します。
    
    Test-Connection コマンドが値 $True を返した場合、コマンドは New-PSSession コマ
    ンドレットを使用して PSSession を作成します。
    
関連するリンク
    Online version: http://go.microsoft.com/fwlink/?LinkID=135266
    Add-Computer 
    Restart-Computer 
    Stop-Computer 
    	
記事で解説しているパソコンの環境
 基本ソフト: Windows 7
 キーワード: Windows PowerShell、ヘルプ、Cmdlet、Test-Connection
ご利用数: 1860022
感想・要望・問い合わせは こちら