【 Test-NetConnection 】コマンドレット――ネットワークの疎通を確認するWindows PowerShell基本Tips(37)

本連載は、PowerShellコマンドレットについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は「Test-NetConnection」コマンドレットを解説します。

» 2022年07月14日 05時00分 公開
[後藤諭史@IT]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

「Windows PowerShell基本Tips」のインデックス

連載目次

 本連載では、Windows PowerShellの基本的なコマンドレットについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、ネットワークの疎通を確認する「Test-NetConnection」コマンドレットです。

Test-NetConnectionコマンドレットとは?

 ネットワークの正常性を確認したり、通信対向との疎通を確認したりする場合、「Ping」コマンドや「Tracert」コマンドといったコマンド群をコマンドプロンプトで利用していたと思います。

 「Test-NetConnection」コマンドレットを用いることで、PingやTracertコマンドで行っていた疎通確認をPowerShellで行うことができます。また、TCPを利用した疎通確認も可能なため、ファイアウォールの設定を確認する際にも利用できます。

Test-NetConnectionコマンドレットの書式

Test-NetConnection [オプション]


Test-NetConnectionコマンドレットの主なオプション

オプション 意味
-ComputerName リモートホストのホスト名、もしくはIPアドレスを指定する。省略可能
-TraceRoute tracertコマンドのように経路を確認する場合に指定する。省略可能
-CommonTCPPort 定義済みのTCPポート(HTTP/RDP/SMB/WINRM)を指定する。指定した場合はTCPによる疎通確認になる。省略可能
-Port 疎通を確認する宛先TCPポート番号を指定する。使用した場合はTCPによる疎通確認になる。省略可能


インターネット上のリモートホストへの疎通を確認する

 Test-NetConnectionコマンドレットをオプションなしで実行すると、デフォルトの通信先である「internetbeacon.msedge.net」にICMP(Internet Control Message Protocol)で疎通確認を試行し、結果を表示します(画面1)。「Ping internetbeacon.msedge.net」コマンドと同等です。

コマンドレット実行例

Test-NetConnection

画面1 画面1 デフォルトの宛先(internetbeacon.msedge.net)へICMPで疎通確認を実施した


リモートホストへの通信経路を確認する

 Test-NetConnectionコマンドレットを「-TraceRoute」オプションを指定して実行すると、リモートホストに至る通信経路を確認できます(画面2)。「tracert」コマンドと同等ですが、tracertと違い、経路上のホストの名前解決は行わず、往復遅延時間(RTT:Round-Trip Time)も対象リモートホストの値のみが表示されます。

コマンドレット実行例

Test-NetConnection -TraceRoute -ComputerName internetbeacon.msedge.net

画面2 画面2 「-TraceRoute」オプションを指定して、リモートホストへの経路を確認した

 画面2の実行内容を見ると分かるように、経路上でICMPに応答しないホストが存在した場合は「0.0.0.0」と表示されます。



TCPで疎通を確認する

 TCPのポート番号を指定して疎通を確認することができます。例えば、リモートホストにリモートデスクトップ接続ができない場合、その原因がネットワークにあるのかどうかを確認する際に便利です。

 Test-NetConnectionコマンドレットで「-Port」オプションを指定し、続けて宛先ポート番号を指定して実行することで、宛先ポート番号に対してTCP通信を試行します。以下の例では、443/TCP(https)で疎通を確認しています(画面3)。

コマンドレット実行例

Test-NetConnection -ComputerName internetbeacon.msedge.net -Port 443

画面3 画面3 443/TCPによる疎通確認。同時に「Wireshark」でパケットをキャプチャーした

 TCPによる疎通確認は画面3の通り、3ウェイハンドシェイクによるTCPのコネクションが確立すると成功と判定されます。

 HTTP(80/TCP)やHTTPS(443/TCP)の疎通確認であっても、実際のコンテンツまでは確認できないので、本コマンドレットでWebサービスの稼働を監視する場合には注意が必要です。

 なお、TCPの疎通確認に失敗した場合、自動的にICMPによる疎通確認を実施し、結果が表示されます。

 以下の画面4では、応答しないポート(8080/TCP)に対して疎通を確認していますが、応答がないためTCPの疎通確認は失敗します。

画面4 画面4 8080/TCPによる疎通確認には失敗しているが、ICMP(Ping)には応答している

 パケットキャプチャーの通り、続けてICMP(Ping)による疎通を確認しています。こちらは成功しているため、「リモートホストはTCPの応答はないが、ICMP(Ping)には応答している」という結果が表示されます。

筆者紹介

後藤 諭史(ごとう さとし)

Microsoft MVP for Cloud and Datacenter Management(2012-2023)。現業の傍ら、コミュニティーイベントでの登壇や著作にてMicrosoftテクノロジーに関する技術情報の発信、共有を続けている。ネットワークやハードウェアといった物理層に近いところが大好きな、昔ながらのインフラ屋さん。得意技はケーブル整線。近著は『詳解! Windows Server仮想ネットワーク』(日経BP社)。


Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。