Windowsのイベントログの管理についてまとめました。

*** イベントログのバックアップ [#s6e2b7c7]
-evtファイル形式で保存するなら、[[MS TechNetのScript:http://www.microsoft.com/japan/technet/scriptcenter/scripts/logs/eventlog/]]をタスクスケジューラで使えば簡単です。VBScriptなので、「[[ログファイルサイズが100KBを超えたらバックアップ:http://www.microsoft.com/japan/technet/scriptcenter/scripts/logs/eventlog/lgevvb02.mspx]]」などの条件処理も簡単です。もちろんカスタムイベントログにも対応しています。
-evtファイル形式で保存するなら、''[[MS TechNetのScript:http://www.microsoft.com/japan/technet/scriptcenter/scripts/logs/eventlog/default.mspx]]をタスクスケジューラで使えば簡単''です。VBScriptなので、「[[ログファイルサイズが100KBを超えたらバックアップ:http://www.microsoft.com/japan/technet/scriptcenter/scripts/logs/eventlog/lgevvb02.mspx]]」などの条件処理も簡単です。もちろんカスタムイベントログにも対応しています。
-CSV形式で出力したければ、WindowsXP標準の eventquery.vbs が便利かもしれません。%WINDIR%system32 にあります。
 使用例
 >cscript eventquery.vbs /FO /v
 >cscript eventquery.vbs /FO CSV /v
 このスクリプトの利用法は、コマンドラインヘルプ(/?)を参照するか、スクリプトファイルの中身を覗いてみてください。[[@IT:http://www.atmarkit.co.jp/fwin2k/xp_feature/013commandtool/commandtool5.html]]でも少し紹介されていました。
-その他、出力形式をカスタマイズしたり、直接DBへ入力したりしたい場合は、自分でWSHを書いた方が早いでしょうね。
 独自出力形式例
 Dim objWMI, colEvents
 Dim strBody
 Set objWMI = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\.\root\cimv2")
 Set colEvents = objWMI.ExecQuery("Select * From Win32_NTLogEvent Where Logfile='System'")
 For Each objEvent In colEvents
     strBody = "File:" & objEvent.LogFile & " / Type:" & objEvent.Type _
     & " / Category:" & objEvent.Category & vbNewLine _
     & "Time: " & objEvent.TimeWritten & vbNewLine _
     & "Message: " & objEvent.Message & vbNewLine
 Wscript.Echo strBody
 Next
 Set colEvents = Nothing
 Set objWMI = Nothing

*** バックアップしたevtファイルの閲覧 [#m4176ea8]
-もちろんWindowsのイベントビューアの「ログ ファイルを開く(O)」で観ることができますが、詳細にフィルタしたければ、前述の eventquery.vbs を使うなり、[[DumpEventLog:http://www.vector.co.jp/soft/winnt/util/se242962.html]]などのフリーソフトウェアを使うなりするとよいかもしれません。

*** カスタムイベントログの削除 [#w39228af]
 イベントログのデータファイルは %WINDIR%\system32\config にあり、Windowsサービス[Event Log]のプロセスに常にロックされています。Windowsサービス[Event Log]は net use stop できないので、カスタムイベントログのデータファイルを削除したいときには、次の手順が必要と思われます。
-レジストリエディタで[HKLM\SYSTEM\CurrentControlSet\Services\Eventlog]にあるカスタムイベントログのキーを削除する。
-Windowsを再起動する。
-%WINDIR%\system32\configにあるカスタムイベントログのデータファイルを削除する。

*** イベントトリガー [#z5ea596b]
 前述の[[@ITの記事:http://www.atmarkit.co.jp/fwin2k/xp_feature/013commandtool/commandtool5.html]]にもありますが、特定のイベントが発生した場合に指定されたコマンドを実行する仕組みがWindowsXPから標準装備されています。その設定をするのが、eventtriggers.exe です。%WINDIR%system32 にあります。
 使い方は如何様にも考えられると思いますが、とにかく有用だと思います。



トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS