もくじ
📝 はじめに
PowerShellでネットワーク関連のトラブルを調べていると、
「このPCから相手に通信できているのか確認したい」
「サーバーやルーターが生きているかを手早く知りたい」
と思う場面は多いのではないでしょうか。
そんなときに役立つのが
Test-Connection です。
この記事では、PowerShellで通信確認を行うための
Test-Connectionの基本的な使い方を、順を追って解説します。
- インターネットや社内ネットワークにつながらないとき
- 特定のサーバーが応答しているか確認したいとき
- トラブル切り分けで「通信できる/できない」を判断したいとき
✅ このコマンドでできること(要点)
- 指定したホストへの通信可否を確認できる
- 応答時間(遅延)を測定できる
- 複数回の通信結果をまとめて取得できる
- スクリプトから自動チェックに組み込める
✅ Test-Connection でできること
Test-Connection は、
指定したホスト(IPアドレスやホスト名)に対して
ICMP通信を行い、応答があるかを確認するコマンドです。
cmdの ping に近い役割ですが、
PowerShellでは結果をオブジェクトとして扱えるため、
スクリプトとの相性が非常に良いのが特徴です。
🧩 基本構文
Test-Connection -ComputerName ホスト名
-ComputerName には、
IPアドレスやドメイン名を指定できます。
▶ 基本的な使い方(まずこれだけ)
🔹 Googleへの通信を確認する
Test-Connection -ComputerName google.com
応答結果が複数行表示されていれば、
通信は正常に行えています。
この結果が表示されていれば問題ありません。
🔹 IPアドレスを指定する
Test-Connection -ComputerName 8.8.8.8
DNSの影響を除外して、
純粋な通信確認をしたい場合に有効です。
🛠 よく使われる指定例
🔹 回数を指定する
Test-Connection -ComputerName google.com -Count 2
-Count を使うことで、
通信回数を制御できます。
少ない回数で素早く確認したい場合に便利です。
🔹 結果を True / False で取得する
Test-Connection -ComputerName google.com -Quiet
-Quiet を指定すると、
成功時は True、
失敗時は False が返ります。
エラーが出なければ正常に判定できています。
💼 実務でよく使う使用例(応用)
🔹 通信できない場合だけメッセージを出す
if (-not (Test-Connection -ComputerName google.com -Quiet)) {
"通信できません"
}
🔹 複数サーバーをまとめて確認する
$servers = "server1","server2","server3"
Test-Connection -ComputerName $servers
- Where-Object で失敗した結果だけ抽出
- Out-File で結果をログに保存
- ForEach-Object で定期チェックを自動化
🧩 よくある勘違い・つまずきポイント
- 通信できない=必ずしもサーバー停止とは限らない
- ファイアウォールでICMPが遮断されている場合がある
- 名前解決できないと失敗することがある
- VPNやプロキシ環境では結果が変わる場合がある
- 応答が遅いだけでも失敗と判断されることがある
🔄 cmdとの違いについて
cmdの ping と似ていますが、
Test-Connectionは結果をオブジェクトとして扱える点が大きな違いです。
そのため、条件分岐やログ出力などに組み込みやすくなっています。
⚠ エラー・うまく動かないときの確認ポイント
- 対象ホストがICMP応答を許可しているか
- ファイアウォールやセキュリティソフトの影響
- DNS設定が正しいか
- ネットワーク自体が接続されているか
🧠 注意点
Test-ConnectionはあくまでICMP通信の確認です。
Webやアプリが正常でも、ICMPが遮断されている環境では
失敗する場合があります。
通信確認の一手段として使うのがおすすめです。
📌 まとめ
- Test-Connectionは通信確認の基本コマンド
- pingに近いが、スクリプト向き
- -Quietを使うと判定が簡単
- 次はポート確認系のコマンドも試すと理解が深まる
🔎 PowerShellコマンドを探す
やりたいことからコマンドを探せます。
- ファイルを削除したい
- 一覧を表示したい
- 文字列を検索したい
- 条件で絞り込みたい
- エラーや実行できない原因を調べたい
- 通信できるか確認したい
- サーバーの生存確認をしたい
