トップ回答者
EvtQuery API で開いたイベントログの詳細メッセージを取得したい

質問
-
イベントログの情報を取得するプログラムを書いています
Vista 以降で追加された API シリーズに EvtQuery, EvtRender などが追加されており、今回新たにこれらを使って書き直そうと思っています
以前は詳細メッセージ部分は、イベントログレコードのオフセットをたどってパラメータを抽出し、登録済みのリソースDLLを使ってフォーマットすれば得られたのですが、これらのAPIセットにおいてはどのように行うのかがわかりませんでした
API の雰囲気からして、イベントログのレコード構造を直接触らなくてもそうしたことができるように設計されているのではないかと想像しているのですが、いくつかのAPIドキュメントを読んでみても、該当するような記述を見つけることができませんでした
最悪、XML形式で取得して、XMLを解析してパラメータらしき部分を取得することになるのかな、という風に思っているのですが、もっと直接的に取得できる方法があるのではないかと思い、探しています
どなたか、このあたりの事情をご存じではないでしょうか
回答
-
ドキュメントのサンプルの各セクションをちゃんと検討されてますか?
> For details on consuming events, see the following topics:
にあげられているのは、「レコードそのもののフィルタ処理」とは思えませんが。
特に
http://msdn.microsoft.com/en-us/library/windows/desktop/aa385768(v=vs.85).aspx
http://msdn.microsoft.com/en-us/library/windows/desktop/dd996923(v=vs.85).aspx
- 編集済み HomeCloset 2014年2月3日 16:31
- 回答としてマーク ishizawa 2014年2月13日 10:51
すべての返信
-
ご回答ありがとうございます
内容を参照してみたところ、レコードそのもののフィルタ処理のように見えて、希望する機能とは異なるものと認識しました
実現したいのは、イベントビュワーのようなもので、特定のソースに限定せずに、時刻と、詳細メッセージをリストアップするというものです
EvtQuery, EvtNext, EvtRender で時刻やソースなどのデータは取得できたのですが、イベントビュワーで表示される、「全般」タブで表示されるメッセージ部分の取得方法がわかっていません
以前はイベントログレコードのオフセットをたどることで、これらのメッセージ(もしくは要素部分)を取り出せたのですが、これを EvtXXXXXX 系列のAPIで何とかできないかと考えているところです
-
ドキュメントのサンプルの各セクションをちゃんと検討されてますか?
> For details on consuming events, see the following topics:
にあげられているのは、「レコードそのもののフィルタ処理」とは思えませんが。
特に
http://msdn.microsoft.com/en-us/library/windows/desktop/aa385768(v=vs.85).aspx
http://msdn.microsoft.com/en-us/library/windows/desktop/dd996923(v=vs.85).aspx
- 編集済み HomeCloset 2014年2月3日 16:31
- 回答としてマーク ishizawa 2014年2月13日 10:51