将整个Windows日志导出到XML

我想创build一个打印机统计,我有一个简单但function强大的XMLparsing器。 所以我想把所有的事件从打印机日志导出到XML格式。

打印服务器运行Win2008R2。 当我想将过滤的日志导出到XML(我过滤了事件ID 307)时,我只有近6000个事件发生了300个事件。

你可以帮帮我吗? 我也试过PowerShell导出日志,但我无法得到xml结构。

    wevtutil的Windows实用程序可以做你正在寻找的东西。 我正在使用它将某些事件日志条目归档到数据库中。 基于PowerShell的方法有几个失败模式,使大量的事件迭代不可行。 此实用程序一次性转储整个事件,这使脱机parsing速度快得多。

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

    具体来说,PowerShell的方法在零售的基础上拉动事件。 当它遍历循环时,它要求目标机器“给我下一个事件”,这需要很多来回机器。 wevutil方法和powershell方法之间的速度差异是显着的:它通过PowerShell提取事件日志花了一个多小时,但通过wevtutil只有2分钟。

    取决于你的使用情况。 如果您正在parsing的日志不是很忙或不是很大,那么powershell方法意味着您不必将文件作为脚本的一部分进行pipe理。

    这应该做的伎俩:

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