Windows/EventLog のバックアップ(No.1) |
|
Windowsのイベントログの管理についてまとめました。
>cscript eventquery.vbs /FO /vこのスクリプトの利用法は、コマンドラインヘルプ(/?)を参照するか、スクリプトファイルの中身を覗いてみてください。@ITでも少し紹介されていました。
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
イベントログのデータファイルは %WINDIR%\system32\config にあり、Windowsサービス[Event Log]のプロセスに常にロックされています。Windowsサービス[Event Log]は net use stop できないので、カスタムイベントログのデータファイルを削除したいときには、次の手順が必要と思われます。
前述の@ITの記事にもありますが、特定のイベントが発生した場合に指定されたコマンドを実行する仕組みがWindowsXPから標準装備されています。その設定をするのが、eventtriggers.exe です。%WINDIR%system32 にあります。
使い方は如何様にも考えられると思いますが、とにかく有用だと思います。