サーバー監視や業務バッチの死活チェックを手軽に行いたい場合、PowerShellだけで「Ping監視+HTTPチェック」を同時に実行できるスクリプトを作るのが便利です。
外部ツールの導入が不要で、Windows標準の PowerShell だけで動作するため、社内サーバー監視や定時バッチの健全性チェックにも最適です。
この記事では、
-
Pingチェック(Test-Connection)
-
HTTPステータスチェック(Invoke-WebRequest)
-
異常検知 → ログ出力
-
タスクスケジューラで自動化
まで、そのまま使える監視スクリプトとしてまとめて紹介します。
1. 監視スクリプトの基本方針
今回作るスクリプトでは、次の 2 種類のチェックを実施します。
● Ping監視(ネットワーク死活)
-
Test-Connectionを利用 -
応答なし → NG
● HTTPチェック(URL応答の死活)
-
Invoke-WebRequestを利用 -
ステータスコード 200 の場合 → OK
-
200 以外またはエラー → NG
さらに、異常が発生した場合はログに追記。
タスクスケジューラに登録すれば、5分ごと・10分ごとの自動監視が可能です。
2. サンプル:Ping+HTTP監視スクリプト(コピペOK)
以下のコードを simple-monitor.ps1 として保存するだけで使えます。
3. ログ出力の例
異常があれば [NG] または [ERROR] として記録されます。
4. タスクスケジューラで自動化する方法
監視処理を自動化するには、Windows標準の タスクスケジューラ に設定します。
● 手順
-
タスクスケジューラを開く
-
右側「タスクの作成」
-
トリガー → 「5分ごと」など設定
-
操作 → 「プログラムの開始」
-
Program:
powershell.exe -
引数:
-
-
保存して有効化
これだけで 完全自動監視が動作します。
5. スクリプトの応用アイデア
あなたのブログの読者が嬉しい応用案も紹介。
-
Slack / Teams に通知送信
-
異常時のみメール通知
-
直近 24 時間のログを HTML 化
-
10 回連続 NG のときだけ通知
-
監視対象リストを CSV 外出しする
業務バッチ監視やオンプレサーバー運用に使えるよう、どんどん拡張できます。
まとめ
PowerShellだけで、
-
Ping監視
-
HTTPステータスチェック
-
ログ出力
-
タスクスケジューラで自動化
をまとめて実装できるため、外部ツールを導入できない企業環境でも大変便利です。
