「駑馬十駕」を信念に IT系情報を中心に調べた事をコツコツ綴っています。

サーバー監視や業務バッチの死活チェックを手軽に行いたい場合、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標準の タスクスケジューラ に設定します。


● 手順

  1. タスクスケジューラを開く

  2. 右側「タスクの作成」

  3. トリガー → 「5分ごと」など設定

  4. 操作 → 「プログラムの開始」

    • Program: powershell.exe

    • 引数:

  5. 保存して有効化

これだけで 完全自動監視が動作します。


5. スクリプトの応用アイデア

あなたのブログの読者が嬉しい応用案も紹介。

  • Slack / Teams に通知送信

  • 異常時のみメール通知

  • 直近 24 時間のログを HTML 化

  • 10 回連続 NG のときだけ通知

  • 監視対象リストを CSV 外出しする

業務バッチ監視やオンプレサーバー運用に使えるよう、どんどん拡張できます。


まとめ

PowerShellだけで、

  • Ping監視

  • HTTPステータスチェック

  • ログ出力

  • タスクスケジューラで自動化

をまとめて実装できるため、外部ツールを導入できない企業環境でも大変便利です。

Ads by Google