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”
コマンドでイベントログを出力する方法は以上です。
コメント