今日のコマンドレットはPowerShellのTest-Connectionです。Test-Connectionは、あなたのネットワーク接続をテストするためのコマンドレットです。Test-Connectionは、人気のあるpingユーティリティのPowerShellによる実装と言えます。ICMPを共有しているため、表面的には似ていますが、内部では少し異なる方法で処理されていることがわかります。
このコマンドレットの使用は簡単です。基本的には、ComputerName
パラメータを指定するだけで、宛先ホストに4つのICMPリクエストが送信されます。
この出力は、ping.exeに似ていますが、表面的には同じですが、PowerShellのTest-ConnectionはICMPリクエストを少し異なる方法で発行しています。ping.exeとは異なり、Test-Connection
はローカルコンピュータのWMIクラスWin32_PingStatusを使用してICMPリクエストを送信しています。ローカルのWMIリポジトリを使用するため、ローカルのWMIリポジトリが正常であることを確認する必要があります。そうでない場合、Test-Connection
は動作しません。
PowerShellのTest-Connectionのオブジェクト出力
また、PowerShellの美しさと同様に、このコマンドレットは単にコンソールに表示される内容を返すだけではありません。私たちは、より多くの情報を収集できる豊富なオブジェクトを見ることができます。
出力を変数に割り当ててプロパティを確認すると、より多くの有用な情報を収集していることがわかります。
内部ホストをテストする場合、Test-Connection
はリモートホストへの認証にDCOMを使用します。デフォルトでは、パケットレベルのDCOM認証が使用されますが、DcomAuthentication
パラメータで認証タイプを変更することもできます。
バックグラウンドジョブの使用
このコマンドレットはバックグラウンドジョブとしても実行できます。バックグラウンドジョブは、タイムアウトする可能性のある多数のリモートコンピュータに対して待ち続ける代わりに、ジョブをバックグラウンドで実行する際に便利です。
PowerShellのヘルプによると、Powershell test-connectionsでは、ローカルおよびリモートコンピュータの両方でPowerShellリモートが有効になっている必要があるとされていますが、これは正しくありません。以下の例ではgoogle.comをテストしていますが、コマンドは正常に動作します。


シンプルに保つ
最後に、コンピュータが応答しているかどうかのバイナリのはい/いいえの回答を求める場合は、常にQuiet
パラメータを使用することができます。サーバがオンラインかどうかを素早く確認するために、Quiet
とCount
の値を1に設定してTest-Connection
に単一のICMPリクエストを送信する方法があります。
それが今日の私たちのCMDletです!Powershell test-connectionで可能なほとんどのことをカバーしましたが、いつものように、PowerShellのヘルプコンテンツを確認するか、Microsoftのドキュメントを参照して、詳細を確認してください。
Source:
https://adamtheautomator.com/powershell-test-connection/