【再掲】イベントビューアのクエリをカスタマイズする (1)

この記事はWindows Live Spaceで掲載したものです。
結構ページビューの多かったページだったので、こちらのブログにも再掲しておきます。
今回掲載する第1弾と、続く第2弾は再掲ですが、この後、第3弾も書き留めておく予定です。
(一部加筆修正しています)  


Windows Server 2008 / Vistaのイベントビューアでは、Windows Eventing 6.0という
アーキテクチャが採用され、各々のログがXML形式で扱われるようになりました。  

そのメリットのひとつとして、柔軟なクエリが実行できる点にあります。
今までは、お仕着せのクエリ条件設定画面があり、複数の条件を設定すると
すべてAND条件になってしまうという、お世辞にも「すばらしい」とは言えないものでした。
なので、Active Directoryに関する監査証跡を残したいからといって、イベントログをアーカイブしておいたものの、
知りたい情報を見つけ出すのは容易ではなかったと思います。  

Windows Server 2008以降のイベントビューアでは、イベントログへのクエリを実行するときに
XPathを使ってクエリを実行することができます。
XPathを使うときは、クエリ画面のXMLタブをクリックすればXPathクエリの編集画面が表示されます。
「手動でクエリを編集する」にチェックをつけておけば、編集を行う事ができます。
いちからガリガリとクエリを書いても良いのですが、ある程度、GUIのクエリ画面で下図のように設定しておけば、  

Event1 
 

XMLタブにXPahクエリが自動的に生成されますので、便利ですよね。  

Event2
 

本題はここからです。
どうやってXPathクエリを書くか、ということですが、
基本的な書式は次のとおりです。 

<QueryList>
<Query Id=”0″ Path=”Security“>
   <Select Path=”Security“>*[…..]
   </Select>
</Query>
</QueryList>

この構文は決まり事ですので、覚えておきましょう。
簡単に紹介すると、Path=の後(赤字部分)にはログの種類が入ります。
この例では、Securityと書いていますので、セキュリティログをクエリの対象としています。  

また、*(アスタリスク)以降(黒太字部分)ですが、ここには具体的なクエリ条件を書いていきます。  

では、この部分を取り出して、詳しく紹介したいと思います。
まず、Active Directory関連のログに関して言うと、イベントログには、
<System>タグの部分と<EventData>タグの部分から構成されています。  

Event3
 

イベントIDやイベントソースなどはSystemタグ、ログを記録したコンピュータの情報やログオンタイプなどはEventDataタグ、
と項目によって記録されるカテゴリが異なります。
そのため、クエリ条件を設定したい項目がSystemとEventDataのどちらに入っているかを先に確認しておきます。  

確認できたら、いよいよクエリを書きます。
ログオンのログで、ログオンタイプが2のログだけを表示させるクエリを書く場合、次のようになります。 

[EventData[Data[@Name=’LogonType‘] = 2]]
これを前述のタグと組み合わせるとこんな感じ。
<QueryList>
  <Query Id=”0″ Path=”Security”>
    <Select Path=“Security”>*[EventData[Data[@Name=’LogonType’] = 2]]
    </Select>
  </Query>
</QueryList>

これなら、イベントログのすべての項目に対してクエリを実行することができますね。
特にGUIのクエリ画面からだと、Systemタグの項目に対してしか、クエリが実行されないので、
EventDataタグにも対象を広げられるのが良いのですね。  

ところで、
私がこれを調べてみようと思ったきっかけは、ログオンのログをクエリで抽出する方法を知りたいというのが始まりでした。
ログオンのログは、イベントID4624などで確認することができますが、
(どうでもよいことだけど、4624ってハトヤっぽいですね)
単純に4624でクエリを実行すると、とんでもない数のログが表示されます。
それは、サービスの起動などでサービスアカウントのログオンがあるからです。
こうしたログを避けて、純粋にCtrl+Alt+Delを押して実行されたログオンのログを確認したいときには、
イベントログのログオンタイプを見ます。
詳細は下表のとおりですが、
Ctrl+Alt+Delを押して実行されたログオンのログはログオンタイプ:2で記録されます。
(ドメインコントローラにはログオンタイプ:3で記録されます)

ログオンタイプ ログオン方法 説明
2 対話型 ローカルログオン
3 ネットワーク ネットワークログオン
4 Batch 自動的に処理されるログオン
5 サービス サービスの開始
6 プロキシ  
7 ロック解除 ロックアウトの解除
8 NetworkClearText IIS基本認証で行うクリアテキスト認証
9 NewCredentials [別のユーザーとしてログオン]等のログオン
10 RemoteInteractive ターミナル経由のログオン
11 CachedInteractive キャッシュされた資格情報を使用