Windowsでコマンドでイベントログを生成する方法

Windowsでコマンドでイベントログを生成する方法

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

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

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

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

ソフトウェアバージョン
Windows 10 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スクリプトなどの実行結果も、上で紹介したコマンドを使ってイベントログに記録することで、管理/監視を効率よく行えるでしょう。