2014年11月14日金曜日

[Windows]Log Parser

Log Parser はイベントログや IIS といったログから検索をしたり、形式を変換したりするツールです。

ダウンロードとインストール

Googleで検索するとマイクロソフトのスクリプトセンターのサイトが出てくるかもしれないです。
このサイトには Log Parser のダウンロードサイトへのリンクも書かれています。
※画面は 2014/11/13 のものです。バージョンは 2.2 となっています。

インストーラをダウンロードしてインストールします。
画面の指示通りで簡単にインストールできます。

Log Parser の実行

Log Parser はスタートメニューにあります。

起動すると、コマンドプロンプトが立ちあがります。

まずは簡単にできることをやります。

イベントログ(システム ログ)の件数を出力します。
C:\Program Files (x86)\Log Parser 2.2>LogParser  "Select Count(*) from System"  -i:evt

ただし、セキュリティログはこのままでは失敗します。
C:\Program Files (x86)\Log Parser 2.2>LogParser  "Select Count(*) from Security"  -i:evt

タスクは中断しました。
<from-entity> を開けません。: イベントログ "Security"
  を開く際にエラーが発生しました。: クライアントは要求された特権を保有してい
  ません。

スタートメニューで Log Parser を起動するのではなく、管理者権限で起動したコマンドプロンプトで実行します。
Log Parser のフルパスは C:\Program Files (x86)\Log Parser 2.2 になります。

良く使う場合には PATH 環境変数に登録するとか System32 のようなパスの通ったところにコマンドをコピーするとかすればいいと思います。

セキュリティ イベントログからログオンイベント(EventID = 4626)を出力します。
> LogParser  "Select * from Security Where EventID = 4624"  -i:evt

ただしこのままでは定期的にこのメッセージが出ます。

何かキーを押してください...

ファイルにリダイレクトしようとするとファイルの中にこのメッセージ(何かキーを押してください...)が書かれて失敗します。

ファイルにリダイレクトするには次のように -o:csv を書きます。
> LogParser "Select * from Security Where EventID = 4624"  -i:evt  -o:csv  >  D:\Log\out.csv

出力形式は csv 以外にもありますが、evt 形式に出力することはできないみたいです。


イベントログファイルの変換

他のマシンから持ってきたイベントログを他のマシン(私がやっているのは Windows 7)で実行する場合には evtx 形式に変換する必要があります。
> wevtutil  epl  d:\Original_EventLog_File.evt  d:\Comvert_EventLog_ File.evtx  /lf:true
※ Windows 7 には wevtuil はインストール済み
※ 他のマシンから持ってきたファイルが evtx ファイルだったとしてもこのステップをかませます。


LogParser の検索について

時間を絞って抽出することもできます。
ただし、UTC 時間なので、9時間ずらして記述する必要があります。

11/6 16:00-18:00 のログが見たい
11/6 16:00-18:00 → 11/6 07:00-09:00
> LogParser  "Select * From d:\20141106\securitylog_ServerA.evtx Where EventID = 592 and TimeWritten Between To_Localtime(Timestamp('2014-11-06 07:00:00', 'yyyy-MM-dd hh:mm:ss')) and To_Localtime(Timestamp('2014-11-06 09:00:00', 'yyyy-MM-dd hh:mm:ss'))"  -i:evt  -o:csv  >  d:\20141106\Securitylog_ServerA_592.csv

複数のファイルを指定することも、複数のイベントIDを指定することもできます。
> LogParser  "Select * From d:\20141106\securitylog_*.evtx Where EventID IN (4688; 4608)"  -i:evt  -o:csv  >  d:\20141106\Securitylog_out.csv
ID: 4688 - 新しいプロセスが作成されました。(コマンド実行)
ID: 4608 - Windows が起動します。(システムクラッシュ、リブート)
※ Windows 2008 の場合

Windows 2008 のセキュリティイベントログの一覧はこちら
Windows 2003 のセキュリティイベントログの一覧はこちら

Windows Tools のページに戻る

0 件のコメント:

コメントを投稿