Windowsのイベントログをタスクスケジューラで監視する方法

Windowsのイベントログをタスクスケジューラで監視する方法

Windows環境では、システムやアプリケーションの動作状況がイベントログとして記録されているため、イベントログを監視することで、トラブル発生をいち早く発見することがきます。

そこでここでは、Windowsの標準機能タスクスケジューラを使って、イベントログを監視する方法を紹介します。

設定方法

ここでは例として、システムログにエラーレベルのイベントが記録されたときに、指定したタスクを実行する方法を紹介します。

特定のイベントログが記録されたときに、タスクスケジューラで指定した処理を実行させる方法には、以下の2種類あります。

  • 「イベントビューアー」で「このログにタスクを設定」か「このイベントにタスクを設定」からタスクを作成する
  • 「タスクマネージャー」からタスクを作成する

ですが「イベントビューアー」からの作成では、システムログのエラーイベントといった絞り込みができないため、ここでは「タスクスケジューラ」からタスクを作成します。

まず、スタートメニューのプログラム一覧から「Windows管理ツール」にある「タスクスケジューラ」を起動します。

Windowsのイベントログをタスクスケジューラで監視する方法

「タスクスケジューラ」を起動したら、右側のメニューから「タスクの作成」をクリックします。

Windowsのイベントログをタスクスケジューラで監視する方法

「全般」タブの設定

「タスクの作成」画面が起動したら「全般」タブでは、以下の画像の赤枠部分を設定します。

Windowsのイベントログをタスクスケジューラで監視する方法

「トリガー」タブの設定

次の「トリガー」タブでは「新規」をクリックして、新しいトリガーを定義します。

Windowsのイベントログをタスクスケジューラで監視する方法

「新しいトリガー」画面が表示されるので「タスクの開始」から「イベント時」を選択し、「設定」から「カスタム」を選択し「新しいイベントフィルター」をクリックします。

Windowsのイベントログをタスクスケジューラで監視する方法

「新しいイベントフィルター」画面が表示されるので、以下の画像のように、システムイベントログからエラーレベルのログだけを抜き出すよう設定し「OK」をクリックします。

Windowsのイベントログをタスクスケジューラで監視する方法

なお「フィルター」タブで設定した内容は、内部的にはXML形式で管理されており「XML」タブを選択すると確認できます。

また、XMLの記述方法を理解できれば、XMLを直接編集することで、細かな条件設定も可能です。

Windowsのイベントログをタスクスケジューラで監視する方法

トリガーの設定が完了したら、トリガー条件が追加されていることを確認します。

Windowsのイベントログをタスクスケジューラで監視する方法

「操作」タブの設定

次の「操作」タブでも「新規」をクリックして、トリガー条件にマッチした場合に実行する操作を定義します。

Windowsのイベントログをタスクスケジューラで監視する方法

操作としては「プログラムの開始」以外は利用できないので、メール通知やメッセージを表示する場合も、コマンドを実行するかスクリプトを作成して実行することになります。

ここでは、例としてデスクトップにメッセージを表示するコマンド「MSG」を実行するよう、以下の画像のように設定し「OK」をクリックします。

Windowsのイベントログをタスクスケジューラで監視する方法

 操作の設定が完了したら、操作が追加されていることを確認し「OK」をクリックします。

Windowsのイベントログをタスクスケジューラで監視する方法

「タスクスケジューラ」画面に戻り、[F5]キーを押して画面を更新し、作成したタスクが表示されていれば、タスクの作成は完了です。

Windowsのイベントログをタスクスケジューラで監視する方法

動作確認

試しに、エラーイベントを発生させて、メッセージが表示されるか確認します。

管理者権限で「コマンドプロンプト」か「Windows PowerShell」を起動して、以下のコマンドを実行し、エラーイベントを発生させてみます。

> EVENTCREATE /ID 999 /L system /SO test /T ERROR /D "イベントログのテストです。"

タスクが正しく設定できていれば、以下のようなメッセージウィンドウが表示されます。

Windowsのイベントログをタスクスケジューラで監視する方法

あとがき

ここでは、基本的なイベントログ監視の方法を紹介しましたが、実際に運用する場合は、どのイベントログを監視対象にするかをよくよく検討する必要があるでしょう。