Windowsでイベントログにカスタムイベントを記録する方法

Windowsでイベントログにカスタムイベントを記録する方法

Windows環境では、オペレーティングシステムやアプリケーションの動作に関する記録がイベントログに記録されていますが、イベントログにはコマンドを使って自分でカスタムイベントを記録することもできます。

そこでここでは、WindowsコマンドやPowerShellコマンドレットで、イベントログにカスタムイベントを記録する方法を紹介します。

Windows10のイベントログを監視してトラブルをいち早く発見する方法
ここでは、Windowsの標準機能「タスクスケジューラー」を利用して、イベントログを監視する方法を紹介します。

動作環境

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

ソフトウェアバージョン
Windows10 Pro 64bit21H2

eventcreateコマンド

Windowsコマンドでカスタムイベントを記録するには、eventcreateコマンドを利用します。

以下では、eventcreateコマンドの使用例を紹介します。

システムイベントログに、イベントID999のエラーイベントを記録するには、以下のようにコマンドを実行します。

> eventcreate /id 999 /l system /t ERROR /d "イベントログのテストです。"

アプリケーションイベントログに、イベントID1000の情報イベントを記録するには、以下のようにコマンドを実行します。

> eventcreate /t INFORMATION /id 1000 /l application /d "イベントログのテストです。"

アプリケーションイベントログに、イベントID200でイベントソースが「wintest」の警告イベントを記録するには、以下のようにコマンドを実行します。

> eventcreate /t WARNING /id 200 /so wintest /l application /d "イベントログのテストです。"

Write-EventLogコマンドレット

PowerShellコマンドレットでカスタムイベントを記録するには、Write-EventLogコマンドレットを利用します。

以下では、Write-EventLogコマンドレットの使用例を紹介します。

システムイベントログに、イベントID999のエラーイベントを記録するには、以下のようにコマンドを実行します。

PS> Write-EventLog -LogName System -Source EventLog -EventID 999 -EntryType Error -Message "イベントログのテストです。"

アプリケーションログに、イベントID100でイベントソースが「SecurityCenter」の情報イベントを記録したいときは、以下のようにコマンドを実行します。

PS> Write-EventLog -LogName Application -Source SecurityCenter -EventID 100 -Message "イベントログのテストです。"

なお、Write-EventLogコマンドレットでカスタムイベントを記録するには、イベントソースの指定が必須ですが、未登録のイベントソースを指定するとエラーとなってしまいます。

そのため、新しいイベントソースを指定してカスタムイベントを記録するには、New-EventLogコマンドレットを使ってあらかじめイベントソースを作成しておきます。

たとえば、アプリケーションログに新しいイベントソース「Wintest」を作成するには、以下のようにコマンドを実行します。

PS> New-EventLog -LogName Application -Source Wintest

また、New-EventLogコマンドレットでは、イベントソースを作成するだけでなく、新しいイベントログの種類を作成することもできます。

たとえば、新しいイベントログの種類として「MyLog」を、イベントソースとして「TaskInfo」を作成したいときは、以下のようにコマンドを実行します。

PS> New-EventLog -LogName MyLog -Source TaskInfo

なお、追加したイベントソースやイベントログの種類を削除したいときは、Remove-EventLogコマンドレットを利用します。

PS> Remove-EventLog -Source Wintest
PS> Remove-EventLog -Logname MyLog

あとがき

Windowsのベントログを管理/監視しているなら、バッチファイルやPowerShellスクリプトなどの実行結果も、上で紹介したコマンドを使ってイベントログに記録することで、管理/監視を効率よく行えるでしょう。

記事が役立ったらシェアしてくれるとうれしいです。