获取最新的事件日志

时间:2013-11-13 16:48:03

标签: powershell windows-server-2008-r2 event-viewer

我正在尝试查看服务器上过去24小时内日志中生成的数据量。

我们的想法是总结使用此命令找到的文件大小:

Get-WinEvent -ListLog * | Where-Object {$_.LastWriteTime -gt ((Get-Date) - (New-TimeSpan -Day 1))} | Format-List -Property LogName, FileSize, LastWriteTime

这个问题是我看起来只是最后一次写入C:\ Windows \ System32 \ winevt \ Logs中的文件,而不是那些看似在内存中的文件。我正在寻找脚本运行的第二步!

你能用更好的方法帮助我吗?

1 个答案:

答案 0 :(得分:3)

您需要从日志中读取事件才能执行此操作:

Get-EventLog -ListLog | Foreach {
    $_ | Get-WinEvent { ... processs the events ... }}

不幸的是,EventLogRecord对象上没有Size属性。您可以使用ToXml()方法,然后获取生成的XML的长度。这虽然相当粗糙。另一种方法是将所有属性的大小相加。由于对象结构是固定的,您可以预先计算bool,int,guid等属性的大小。但是,您需要在运行时确定字符串的长度。