Windows10:トラブルをいち早く発見する方法(イベントログ監視)

Windows環境では、トラブル発生時にトラブルに関するログがイベントログに記録されている場合が多いため、イベントログを監視することで、トラブル発生をいち早く発見することがきます。

そこで、ここではWindowsの標準機能「タスクスケジューラー」を利用して、特定のイベントログが記録されたら、自動的にタスクを実行する方法を紹介します。

動作環境

この記事は、以下の環境での動作結果を基にしています。他のエディションやバージョンでは、動作結果が異なる場合があることをご了承ください。

ソフトウェア バージョン
Windows10 Professional 64bit 1809

設定方法

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

特定のイベントログが記録されたときにタスクを実行させる場合のタスク作成方法には、2種類あります。

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

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

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

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

「全般」タブの設定

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

「トリガー」タブの設定

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

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

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

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

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

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

「操作」タブの設定

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

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

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

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

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

動作確認

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

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

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

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

あとがき

ここでは、基本的なイベントログ監視の方法を紹介しましたが、イベントログには実害がないエラーイベントも数多く記録されるため、上記の設定をそのまま運用することはお勧めできません。

実際に運用する場合は、タスクの「トリガー」設定で、イベントログのソースやIDなどでさらに条件を絞り込み、通知方法もメッセージを表示するのではなく、メール通知するようにし、本文にはエラーイベントの内容を記載する、などの方法がよりスマートかと思います。

あなたへのおすすめコンテンツ
トップへ戻る