web-dev-qa-db-ja.com

Windowsログ全体をXMLにエクスポートする

プリンター統計を作成したいのですが、シンプルでありながら強力なXMLパーサーがあります。そのため、すべてのイベントをプリンターログからXML形式にエクスポートしたいと思います。

プリントサーバーはWin2008R2を実行します。フィルタリングされたログをXMLにエクスポートしたい場合(イベントID 307をフィルタリングしました)、ほぼ6000から300のイベントしかありません。

私たちを手伝ってくれますか?また、PowerShellでログをエクスポートしようとしましたが、xml構造を取得できません。

6
user1169051

Windowsユーティリティ wevtutil は、あなたが探していることを実行できます。特定のイベントログエントリをデータベースにアーカイブするために使用していました。 PowerShellベースのメソッドにはいくつかの障害モードがあり、多数のイベントを繰り返すことができませんでした。このユーティリティは、すべてを一度にダンプします。これにより、オフライン解析がはるかに高速になります。

wevtutil qe Security /r:DC01 /q:"*[System[((EventID=307))]]" > evtdump.xml

具体的には、PowerShellメソッドは小売ベースでイベントをプルします。ループを繰り返すと、ターゲットマシンに「次のイベントをくれ」と尋ねられます。これには、マシンとのやり取りが多く必要になります。 wevutilメソッドとpowershellメソッドの速度の違いは重要でした。powershellを介してイベントログを抽出するのに1時間以上かかりましたが、wevtutilを介してわずか2分でした。

ただし、ユースケースによって異なります。解析しているログがビジーでないか、それほど大きくない場合、PowerShellメソッドは、スクリプトの一部としてファイルを管理する必要がないことを意味します。

3
sysadmin1138

これでうまくいくはずです:

Get-WinEvent | ?{$_.id -eq 307} | Export-Clixml 307Events.xml  
1
Bart De Vos