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