コマンドによるWindowsイベントログの出力方法

Windows OS標準機能のログにはイベントログがあります。

イベントログはシステムや各アプリケーションのログをイベントビューアーで表示することが出来ます。


イベントログにどのようなログが出力されるかはOSやアプリケーションごとに予め定義されています。

ですが、Windows アプリケーション開発やイベントログの監視テストなどで、意図的にイベントログを出力したい場合があると思います。


任意のイベントログを出力する方法として、コマンドプロンプトとPowerShellを使う方法があります。

今回はそれぞれのコマンドの使い方と違いを紹介します。


1.コマンドプロンプトによる出力方法

コマンドプロンプトでは、「EventCreate」コマンドを使用します。

オプションは下記の通りです。

  • /L:ログの種類 (SystemやApplicationなど)
  • /T:レベル (Information、Warning、Error、Success)
  • /SO:ソース
  • /ID:イベントID
  • /D:出力メッセージ


実際にコマンドを実行してみます。

C:\Windows\system32>EventCreate /L Application /T ERROR /SO “CreateEvent Test” /ID 100 /D “Event Test”

成功: 種類が ‘Error’ のイベントが、’Application’ ログ内に、’CreateEvent Test’ をソースとして作成されました。




「EventCreate」で指定する「ソース」は存在しないソースしか指定出来ません。

既に存在するソースを指定した場合、下記のエラーが表示されます。

エラー: インストールされているアプリケーションではなく、カスタムアプリケーションまたはスクリプトを識別するためだけに、ソースパラメーターが使用されます。




2.PowerShellによる出力方法

PowerShellでは、「Write-EventLog」コマンドを使用します。

オプションは下記の通りです。

  • LogName:ログの種類 (SystemやApplicationなど)
  • Source :ソース
  • EventID :イベントID
  • Message :出力メッセージ
  • EntryType:レベル (Information、Warning、Error、SuccessAudit、FailureAudit) (オプション)
  • Category:タスクのカテゴリ (オプション)
  • ComputerName: コンピューター (オプション)


実際にコマンドを実行してみます。

Write-EventLog -LogName Application -EntryType Information -Source “Event Test” -EventID 100 -Message “Event Test”




「Write-EventLog」で指定する「ソース」は存在するソースを指定することが可能です。

そのため、存在しないソースを指定した場合、下記のエラーが表示されます。

Write-EventLog : ソース名 “Event Test” はコンピューター “localhost” に存在しません。


既定で存在しないソースを利用する場合、先に「New-EventLog」でソースを作成する必要があります。

New-EventLog -LogName Application -Source “Event Test”



コマンドでイベントログを出力する方法は以上です。

コメント

タイトルとURLをコピーしました