【问题标题】:Get the latest event logs获取最新的事件日志
【发布时间】:2013-11-26 09:32:02
【问题描述】:

我试图找出过去 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 的文件,而不是那些看似在内存中的文件。我正在寻找直到脚本运行的所有内容!

你能帮我一个更好的方法吗?

【问题讨论】:

  • 大量数据什么?事件数?日志大小?
  • 对不起,我应该更清楚。我的意思是数据大小

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


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2011-01-08
    • 2019-08-07
    • 2011-10-24
    • 1970-01-01
    • 1970-01-01
    • 2016-12-26
    • 2017-04-04
    • 1970-01-01
    • 2012-06-23
    相关资源
    最近更新 更多