Windows の イベントログ を出力しようと思うと、あらかじめ "イベントソース" を登録しておかなくてはいけません。 ここでは、その "イベントソース" の登録場所と具体的な方法をまとめます。
目次
- レジストリ登録する場所と内容
- レジストリファイル(.regファイル)で追加、削除
- イベントソース を レジストリファイル(.regファイル) で追加
- イベントソースを レジストリファイル(.regファイル) で削除
- バッチファイル(.batファイル)で追加、削除
- イベントソース を バッチファイル(.batファイル) で追加
- イベントソース を バッチファイル(.batファイル) で削除
レジストリ登録する場所と内容
イベントソースに関する情報を保存する場所は、レジストリの以下の場所 (AppName) になります。
HKEY_LOCAL_MACHINE
SYSTEM
Services
Eventlog
Application
AppName
Security
System
上述の場所に保存される、イベントソースに関する情報は以下の通りになります。 "必須"は、私がたぶんそうだと思う…というものなので参考にしていただければと思います。。
キー | 必須 | 型 | 値 |
---|---|---|---|
(規定) | ○ | なし。 | |
CategoryCount | REG_DWORD | サポートしているイベントカテゴリ数。 | |
CategoryMessageFile | REG_SZ / REG_EXPAND_SZ | カテゴリメッセージファイルへのパス。 | |
EventMessageFile | ○ | REG_SZ / REG_EXPAND_SZ | 1つ以上のメッセージファイルへのパス。 セミコロン区切りで複数指定可能。 |
ParameterMessageFile | REG_SZ / REG_EXPAND_SZ | パラメータメッセージファイルへのパス。 | |
TypeSupported | ○ | REG_DWORD | サポートするイベントログタイプのビットマスク。
|
レジストリファイル(.regファイル)で追加、削除
イベントソース名「SampleApplication」を追加、削除するレジストリファイル(.regファイル)のサンプルコードを以下に載せます。
イベントソース を レジストリファイル(.regファイル) で追加
1 2 3 4 5 | Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Application\SampleApplication] "EventMessageFile"="%SystemRoot%\\System32\\mscoree.dll" "TypesSupported"=dword:00000007 |
イベントソースを レジストリファイル(.regファイル) で削除
1 2 3 | Windows Registry Editor Version 5.00 [-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Application\SampleApplication] |
バッチファイル(.batファイル)で追加、削除
レジストリファイルと同様にイベントソース名「SampleApplication」を追加、削除するレジストリファイル(.regファイル)のサンプルコードを以下に載せます。 バッチを用いて追加または削除する場合、バッチを管理者で実行する必要がある点に注意してください。
イベントソース を バッチファイル(.batファイル) で追加
1 2 3 4 5 6 7 8 9 10 11 12 | @ echo off cd /d "%~dp0" rem イベントソース名 set APP_NAME=SampleApplication rem 完全キー名 set ROOT_KEY=HKLM\SYSTEM\CurrentControlSet\Services\EventLog\Application\ %APP_NAME% rem キーおよびサブキーを追加 reg add "%ROOT_KEY%" /v EventMessageFile /t REG_EXPAND_SZ /d "%%SystemRoot%%\System32\mscoree.dll" /f reg add "%ROOT_KEY%" /v TypesSupported /t REG_DWORD /d 7 /f |
イベントソース を バッチファイル(.batファイル) で削除
1 2 3 4 5 6 7 8 9 10 11 | @ echo off cd /d "%~dp0" rem イベントソース名 set APP_NAME=SampleApplication rem 完全キー名 set ROOT_KEY=HKLM\SYSTEM\CurrentControlSet\Services\EventLog\Application\ %APP_NAME% rem キーごと削除を実行 reg delete "%ROOT_KEY%" /f |
参考記事
最後に… このブログに興味を持っていただけた方は、 ぜひ 「Facebookページ に いいね!」または 「Twitter の フォロー」 お願いします!!