もくじ
📝 はじめに
ネットワークトラブルを調べていると、
「サーバー自体は生きているけれど、特定のサービスだけ使えない」
「Webは見られないのに、通信自体はできているのか分からない」
と感じることはありませんか?
そんなときに役立つのが
Test-NetConnection です。
この記事では、ポート番号を指定して疎通確認を行う方法を中心に、
PowerShellでの実用的な使い方を解説します。
- Webサーバー(80 / 443)が応答しているか確認したい
- RDP(3389)やSSH(22)につながるか調べたい
- ファイアウォールやセキュリティ設定の切り分けをしたい
✅ このコマンドでできること(要点)
- 指定したホストとポートの疎通を確認できる
- TCP接続が可能かを判定できる
- DNSやルーティングの情報も同時に確認できる
- スクリプトで自動判定に組み込みやすい
✅ Test-NetConnection でできること
Test-NetConnection は、
単なる通信確認だけでなく、
「指定したポートに接続できるか」を調べられるコマンドです。
Test-Connection が
「相手に届くか(ICMP)」を見るのに対し、
Test-NetConnection は
「そのサービスが使えるか(TCP)」を見るイメージです。
🧩 基本構文
Test-NetConnection -ComputerName ホスト名 -Port ポート番号
-ComputerName にはホスト名やIPアドレス、
-Port には確認したいポート番号を指定します。
▶ 基本的な使い方(まずこれだけ)
🔹 Webサーバー(HTTPS)の疎通確認
Test-NetConnection -ComputerName google.com -Port 443
結果に TcpTestSucceeded : True と表示されていれば、
そのポートへの接続は成功しています。
この表示が出ていれば問題ありません。
🔹 IPアドレスを指定して確認する
Test-NetConnection -ComputerName 8.8.8.8 -Port 53
DNS名解決の影響を除外して、
純粋にポート疎通を確認したい場合に有効です。
🛠 よく使われる指定例
🔹 結果を True / False で判定する
Test-NetConnection -ComputerName google.com -Port 443 -InformationLevel Quiet
-InformationLevel Quiet を使うと、
成功時は True、
失敗時は False が返ります。
エラーが出なければ正常に判定できています。
🔹 詳細なネットワーク情報を確認する
Test-NetConnection -ComputerName google.com -Port 443 -InformationLevel Detailed
ルーティングやインターフェース情報まで表示されるため、
トラブル切り分けに役立ちます。
💼 実務でよく使う使用例(応用)
🔹 接続できない場合だけ警告を出す
if (-not (Test-NetConnection -ComputerName server1 -Port 3389 -InformationLevel Quiet)) {
"RDPに接続できません"
}
🔹 複数サーバーのポート疎通を確認する
$servers = "server1","server2","server3"
foreach ($s in $servers) {
Test-NetConnection -ComputerName $s -Port 80 -InformationLevel Quiet
}
- ForEach-Object で定期チェックを自動化
- Out-File で結果をログに保存
- Where-Object で失敗した通信だけ抽出
🧩 よくある勘違い・つまずきポイント
- 通信できない原因が必ずサーバー側とは限らない
- ファイアウォールでポートが遮断されている場合がある
- サービスが停止していると疎通できない
- VPNや社内ネットワーク経由で結果が変わることがある
- UDP通信の確認には向いていない
🔄 cmdとの違いについて
cmdにはポート疎通を直接確認する標準コマンドがありません。
Test-NetConnectionは、
PowerShellならではの統合的なネットワーク診断ができる点が強みです。
⚠ エラー・うまく動かないときの確認ポイント
- 対象ポートがサーバー側で待ち受け状態になっているか
- WindowsファイアウォールやUTMの影響
- プロキシやVPNを経由していないか
- 管理者権限が必要な環境ではないか
🧠 注意点
Test-NetConnectionはTCP通信の確認が主目的です。
アプリケーションが正常に動作しているかどうかは、
別途ログや実際の接続テストと併せて確認するのがおすすめです。
📌 まとめ
- Test-NetConnectionはポート疎通確認に最適
- サービス単位の通信確認ができる
- -InformationLevel Quietで判定を簡略化できる
- 次はファイアウォール設定やログ確認と組み合わせると理解が深まる
🔎 PowerShellコマンドを探す
やりたいことからコマンドを探せます。
- ファイルを削除したい
- 一覧を表示したい
- 文字列を検索したい
- 条件で絞り込みたい
- エラーや実行できない原因を調べたい
- ポートが開いているか確認したい
- サーバーのサービス疎通を確認したい
