web-dev-qa-db-ja.com

Windowsシステムログイベントをテキストファイルにキャッチします

ばかげたコンプライアンス要件のために、w32timeイベントをテキストファイルにキャプチャする必要があります。 Windowsでそれを行う方法はありますか?

2
Vitaliy

素早い回答;手動で、イベントビューアから、システムログをクリックし、[表示]> [フィルタ]に移動して、[イベントソース]ドロップダウンから[W32Time]を選択します。 OKを押します。次に、[アクション]> [リストのエクスポート]に移動して、ファイル名を入力します。詳細も必要な場合は、[アクション]> [ログファイルに名前を付けて保存]を使用してログファイル全体を保存し、[ファイルの種類]ドロップダウンから[Tab Delimeted]または[Comma Separated]を選択する必要があります。

長い答えは、スクリプトです。 WMIを使用してWin32_NTLogEventをクエリし、FileSystemObjectまたは出力リダイレクトのいずれかを使用してファイルにスプールします。

On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_NTLogEvent WHERE SourceName = 'W32Time'",,48)

Dim fso : Set fso = CreateObject("scripting.filesystemobject")
Dim ts : Set ts = fso.CreateTextFile("X:\w32time_events.txt", True)

For Each objItem in colItems
    ts.WriteLine "Category: " & objItem.Category
    ts.WriteLine "CategoryString: " & objItem.CategoryString
    ts.WriteLine "ComputerName: " & objItem.ComputerName
    ts.WriteLine "Data: " & objItem.Data
    ts.WriteLine "EventCode: " & objItem.EventCode
    ts.WriteLine "EventIdentifier: " & objItem.EventIdentifier
    ts.WriteLine "EventType: " & objItem.EventType
    ts.WriteLine "InsertionStrings: " & objItem.InsertionStrings
    ts.WriteLine "Logfile: " & objItem.Logfile
    ts.WriteLine "Message: " & objItem.Message
    ts.WriteLine "RecordNumber: " & objItem.RecordNumber
    ts.WriteLine "SourceName: " & objItem.SourceName
    ts.WriteLine "TimeGenerated: " & objItem.TimeGenerated
    ts.WriteLine "TimeWritten: " & objItem.TimeWritten
    ts.WriteLine "Type: " & objItem.Type
    ts.WriteLine "User: " & objItem.User
    ts.WriteBlankLines 1
Next

ts.Close

Set ts = Nothing
Set fso = Nothing
Set colItems = Nothing
Set objWMIService = Nothing

気にしない場合の不正行為オプション。 cmdコマンドプロンプトから、次のことを試してください。

wmic NTEVENT | find /i "W32Time" > W32Time_Events.txt

HTH

J。

3
jimbobmcgee

実行しているWindowsのバージョンを指定していません。 Win2k8以降では、タスクをイベントに添付できるため、ある程度の自動化が可能です。次に、イベントをテキストファイルに追加できるスクリプトを作成する必要があります。残念ながら、私が信じるすべてのイベントIDに対して設定する必要があるため、少し面倒です。

もう1つのオプションは、 EventSentry のようなイベントログ監視ツールをセットアップすることです。このツールは、イベントログをリアルタイムで監視し、テキストファイルやデータベースなどのさまざまな形式でイベントを(ルールに従って)ログに記録できます。利点は、イベントログがリアルタイムで監視されるようになり、必要に応じて複数のマシンにも拡張できることです。また、追加の便利な機能にアクセスできるという追加のメリットもあります。

免責事項:私はnetikus.netで働いています。

1
Lucky Luke