おはようございます。こんにちは。こんばんは。
ミッド(@mid_v_lab)です
知ってると使えるかもシリーズ第4弾。
今回はWindowsに標準搭載されている「eventcreate」をご紹介します。
「eventcreate」は、任意のWindowsイベントログを作成できるコマンドです。
任意のイベントを発生させることで、下記の利点があります。
- タスクスケジューラのキックとして利用できる
- 監視のチェックができる
- 処理の終了をイベントログとして記録できる
私はもっぱらタスクスケジューラのキックとして利用しています。(この処理が終わったら、イベントログを生成して、そのイベントログをキーに別のスクリプトが動く)
eventcreateの概要
eventcreateの使い方は下記となります。
eventcreate△/ID△<イベントID>△/T△<イベント種類>△/d△<説明>
※△は半角スペース
<イベントID>は作成したいイベントを指定します。今回は「701」とします。
<イベント種類>は、「ERROR」「WARNING」「INFORMATION」「SUCCESSAUDIT」「FAILAUDIT」から選択します。今回は「INFORMATION」とします。
<説明>は、イベントの説明です。任意で入力可能ですので、わかりやすいものを記載しておきましょう。今回は「EventCreateTEST」とします。
コマンド実行
実際に書くと下記のコマンドになります。
eventcreate△/ID△701△/T△INFORMATION△/d△EventCreateTEST
実際にPowerShell上で実行してみると
PS C:\Windows\system32> eventcreate /ID 701 /T INFORMATION /d EventCreateTEST
成功: 種類が ‘INFORMATION’ のイベントが、’Application’ ログ内に、’EventCreate’ をソースとして作成されました。
上記のような出力になると思います。
尚、「eventcreate」を実行するには、管理者権限が必要です。
イベントログの確認
では、Windowsのイベントログを見てみます。
Applicationログに情報(INFORMATION)で、ソースが「EventCreate」、イベントIDが「701」、下部の説明部分に「EventCreateTEST」となっていることが確認できます。
注意
「eventcreate」コマンドでは、IDが1000までしか発行できません。
1001以上を利用したい場合は、PowerShellの「New-EventLog」や「Write-EventLog」あたりのコマンドが必要です。
私は1000以内で困ったことがないので、PowerShellコマンドは使ったことがありません。
また、タスクスケジューラのキックとして利用する場合、作成するイベントIDが他の仕組みでも発行されるIDだと注意が必要です。(別のイベントをキーにタスク実行されてしまうため)
事前にイベントビューワー上で、作成IDを検索して出ているイベントがないことを確認するとともに、利用しているアプリケーションの仕様上出るイベントを抑えておきましょう。
イベントビューワーで、利用しようと思っているIDがイベントに出ているかを確認するには
現在のログをフィルタを選択し、
イベントレベルやIDを指定し、(今回はID701だけで指定)
イベントが何も出ないことを確認してください。(今回は発行したイベント1行のみ出ています)
ではでは