ネットワーク疎通確認コマンドとしてはpingが一般的ですが、PowerShellのTest-NetConnection
コマンドレットが多機能で便利です。
コマンドプロンプトでいうところの、pingやtracertの機能に加えて、特定のTCPポートへの接続確認も可能です。
基本的な使い方 (pingの代替)
特定のホスト(IPアドレスまたはコンピュータ名)に到達できるかを確認します。
Test-NetConnection www.skygroup.jp
成功すると、PingSucceeded : True と表示され、応答時間などの詳細が確認できます。
また、Test-NetConnectionよりもシンプルなpingの代替としてTest-Connectionコマンドもあります。
Test-Connection www.skygroup.jp -Quiet
より単純な応答確認に特化しており、スクリプト内に組み込む場合などに疎通の可否だけを素早く知りたい場合に便利です。
-Quietオプションをつけると、詳細な結果の代わりに、成功した場合はTrue、失敗した場合はFalseという値だけが返されます。
特定のポートでの通信可否を確認する場合
ファイアウォールの設定確認などで、特定のTCPポートが開放されているかを確認したい場合に非常に便利です。
ここがpingコマンドと比べて最大の利点となります。
例えば、WebサーバーのHTTPSポート(443)が応答するかを確認するには、以下のように -Port オプションを使用します。
Test-NetConnection www.skygroup.jp -Port 443
実行結果:
TcpTestSucceeded : True
と表示されれば、指定したポートでTCP接続が成功したことを意味します。
TcpTestSucceeded : False
の場合は接続に失敗しています。
その場合でも、ping(ICMP)による疎通確認は別途実行され、その結果も表示されます。
通信経路を確認する場合
-TraceRoute オプションを使用すると、宛先ホストまでのネットワーク経路(経由するルーター)
を確認できます。
これは tracert コマンドに相当します。
Test-NetConnection www.skygroup.jp -TraceRoute
補足
pingコマンドと比較した場合のメリットをもう一点お伝えすると、pingやtracertの出力は単なる「文字列」ですが、Test-NetConnectionの出力はプロパティを持った「オブジェクト」です。
スクリプトに組み込む場合にはこの点もメリットとなります。
今回の記事は以上になります。

