ICMP エコー要求パケット (ping) を 1 台以上のコンピューターに送信します。

構文

Test-Connection [-ComputerName] <string[]> [[-Source] <string[]>] [-AsJob] [-Authentication {<Default> | <None> | <Connect> | <Call> | <Packet> | <PacketIntegrity> | <PacketPrivacy> | <Unchanged>}] [-BufferSize <int>] [-Count <int>] [-Credential <PSCredential>] [-Delay <int>] [-Impersonation {<Default> | <Anonymous> | <Identify> | <Impersonate> | <Delegate>}] [-Quiet] [-ThrottleLimit <int>] [-TimeToLive <int>] [<CommonParameters>]

説明

Test-Connection コマンドレットは、インターネット制御メッセージ プロトコル (ICMP) のエコー要求パケット ("ping") を 1 台以上のリモート コンピューターに送信して、エコー応答を返します。このコマンドレットを使用すると、インターネット プロトコル (IP) ネットワークを介して特定のコンピューターにアクセスできるかどうかを判断できます。

Test-Connection のパラメーターを使用して、送信側と受信側の両方のコンピューターの指定、バックグラウンド ジョブとしてのコマンドの実行、タイムアウトと ping の数の設定、および接続と認証の構成を行うことができます。

従来の "ping" コマンドとは異なり、Test-Connection は Windows PowerShell で調査可能な Win32_PingStatus オブジェクトを返しますが、Quiet パラメーターを使用するとブール値のみを返すように強制できます。

パラメーター

-AsJob

バックグラウンド ジョブとしてコマンドを実行します。

注: このパラメーターを使用するには、ローカル コンピューターおよびリモート コンピューターをリモート処理用に構成する必要があります。また、Windows Vista 以降のバージョンの Windows の場合は、Windows PowerShell を開く際に [管理者として実行] を指定する必要があります。詳細については、「about_Remote_Requirements」を参照してください。

AsJob パラメーターを使用すると、バックグラウンド ジョブを表すオブジェクトが即座に返されます。ジョブが完了しても、引き続きセッションで作業できます。ジョブは、ローカル コンピューターで作成され、リモート コンピューターでの結果は自動的にローカル コンピューターに返されます。ジョブの結果を取得するには、Receive-Job コマンドレットを使用します。

Windows PowerShell のバックグラウンド ジョブの詳細については、「about_Jobs」および「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 リモート処理に依存しません。コンピューターがリモート コマンドを実行するように構成されていない場合でも、ComputerName パラメーターを使用できます。

必須

true

位置

1

既定値

パイプライン入力を許可する

true (ByPropertyName)

ワイルドカード文字を許可する

false

-Count <int>

送信するエコー要求の数を指定します。既定値は 4 です。

必須

false

位置

named

既定値

4

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-Credential <PSCredential>

この処理を実行するアクセス許可を持つユーザー アカウントを指定します。"User01" や "Domain01\User01" のようなユーザー名を入力するか、PSCredential オブジェクト (Get-Credential コマンドレットから返されるものなど) を入力します。

必須

false

位置

named

既定値

Current user

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-Delay <int>

ping 間の間隔を秒単位で指定します。

必須

false

位置

named

既定値

1 (second)

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-Impersonation <ImpersonationLevel>

WMI を呼び出すときに使用する偽装レベルを指定します。Test-Connection は WMI を使用します。既定値は "Impersonate" です。

有効な値は次のとおりです。

Default: 既定の偽装。

Anonymous: 呼び出し元の ID は非表示になります。

Identify: オブジェクトによる呼び出し元の資格情報のクエリが許可されます。

Impersonate: オブジェクトによる呼び出し元の資格情報の使用が許可されます。

必須

false

位置

named

既定値

3

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-Quiet

エラーはすべて表示せず、ping が 1 回でも成功した場合は $True を返し、すべて失敗した場合は $False を返します。

必須

false

位置

named

既定値

False

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-Source <string[]>

ping の送信元コンピューターの名前を指定します。コンピューター名のコンマ区切り一覧を入力します。既定値はローカル コンピューターです。

必須

false

位置

2

既定値

Local computer

パイプライン入力を許可する

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、-OutBuffer、および -OutVariable。Ô”¼š¤Ë¤Ä¤¤¤Æ¤Ï¡¢次を参照してください: about_Commonparameters.

入力と出力

入力値の型は、コマンドレットへのパイプが可能なオブジェクトの型です。戻り値の型は、コマンドレットによって返されるオブジェクトの型です。

入力

なし

パイプを使用してこのコマンドレットに入力を渡すことはできません。

出力

System.Management.ManagementObject#root\cimv2\Win32_PingStatus、System.Management.Automation.RemotingJob、System.Boolean

AsJob パラメーターを使用すると、コマンドレットはジョブ オブジェクトを返します。Quiet パラメーターを使用すると、ブール値を返します。それ以外の場合は、このコマンドレットが各 ping ごとに Win32_PingStatus オブジェクトを返します。

このコマンドレットでは Win32_PingStatus クラスを使用します。"get-wmiojbect 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") をローカル コンピューターから Server01 コンピューターに送信します。ComputerName パラメーターを使用して Server01 コンピューターを指定しますが、オプションのパラメーター名は省略します。






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

説明
-----------
このコマンドは、ping をさまざまな送信元コンピューターから 1 台のリモート コンピューター Server01 に送信します。複数のポイントからの接続の待機時間をテストするには、このコマンド形式を使用します。






例 4

C:\PS>test-connection -computername Server01 -count 3 -delay 2 -TTL 256 -buffersize 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 $job}

説明
-----------
この例では、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 Identify

説明
-----------
このコマンドは、Test-Connection コマンドレットを使用して、リモート コンピューターに ping します。Credential パラメーターを使用して、リモート コンピューターに ping するアクセス許可を持つユーザー アカウントを指定します。また、Impersonation パラメーターを使用して、偽装レベルを "Identify" に変更します。






例 7

C:\PS>if (test-connection -computername Server01 -quiet) {new-pssession Server01}

説明
-----------
このコマンドは、コンピューターに送られた ping が少なくとも 1 回成功した場合にのみ Server01 で PSSession を作成します。

このコマンドは Test-Connection コマンドレットを使用して、Server01 コンピューターに ping します。このコマンドは Win32_PingStatus オブジェクトの代わりに、ブール値を返す Quiet パラメーターを使用します。4 回の ping のうち 1 回でも成功すれば値 $True を返し、成功しなかった場合は $False を返します。

Test-Connection コマンドが値 $True を返した場合、コマンドは New-PSSession コマンドレットを使用して PSSession を作成します。






関連項目




目次