Windowsでイベントログにログを出力する方法

Windowsでイベントログにログを出力する方法

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

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

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