VBScriptからDOSのeventcreateコマンドを実行して、Windowsのイベントに独自のカスタムイベントを書き込む方法について覚書。
eventcreateコマンドの詳細
eventcreateコマンドの各種オプションについては、Microsoft の以下のページを参照してください。
eventcreate
管理者が、指定したイベント ログにカスタム イベントを作成できるようにする eventcreate コマンドのリファレンス記事。
もしくは、DOSコマンドプロンプトで「eventcreate /?」と入力して[Enter]を押せば詳細が表示されます。
作成するカスタムイベント
紹介するサンプルプログラムで作成するイベントは、「Application」イベントに「エラー」レベルでイベントIDに「999」、ソースに「TEST_Command」を指定しています。
またメッセージとして以下の改行されたメッセージを表示するようにしています。
「カスタムイベントのテスト
このイベントはカスタムイベントを作成するサンプルプログラムによって作成されたイベントです。」
イベントビューアーの画面だとこんな感じです。
VBScriptのサンプルプログラム
サンプルプログラムは以下のとおりです。
Set objShell = CreateObject("WScript.Shell")
strBody = "カスタムイベントのテスト" & vbCrLf & _
"このイベントはカスタムイベントを作成するサンプルプログラムによって作成されたイベントです。"
objShell.Run "eventcreate /l APPLICATION /T ERROR /ID 999 /SO TEST_Command /D " & strBody
文字列を改行する場合は、「vbCrLF」を改行を入れたい文字列の間に結合すれば改行されます。
補足
もしVBScriptを実行してもエラーも何も表示されず、カスタムイベントが作成されない場合は、以下の記事を参考にイベント作成の権限を確認してください。
eventcreateを実行してもカスタムイベントが作成されない(アクセスが拒否されました)場合の対処方法
VBScriptなどでeventcreateコマンドを実行してもエラーも何も表示されず、イベントビューアーを見てもイベントが作成されていない場合や、コマンドプロンプトからeventcreateコマンドを実行した際に「アクセスが拒否されました...
まとめ
VBScriptからDOSのeventcreateコマンドを実行させてカスタムイベントを作成するサンプルプログラムを紹介しました。
VBScriptで処理された結果に基づいてイベントにカスタムイベント作成、それを監視システムに拾わせるなんていうときに使ったりしています。
コメント