根据日期过滤事件日志

Filter EventLog based on date

我正在尝试根据今天的日期通过 PowerShell 从事件日志中提取一些信息。

到目前为止我有以下代码:

$today = (Get-Date).ToString("dd/MM/yyyy")
Get-EventLog Security | where {$_.EventID -eq 4624} | where {$_.TimeGenerated -eq $today}

现在我打印了今天的结果,可以确认输出的日期是 04/12/2017,我还打印了来自 EventID 对象的 TimeGenerated 属性的日期,并且还显示了相同格式的日期。

关于我哪里出错的任何想法?

TimeGenerated 属性 包含一个 DateTime 值,而不是字符串,所以不要将它与日期字符串进行比较。此外,您应该尽可能通过 Get-EventLog 参数进行过滤,因为该过滤发生在源头。这在查询远程事件日志以减少通过网络传输的数据量时尤为重要。

$today    = (Get-Date).Date
$tomorrow = $today.AddDays(1)

Get-EventLog -LogName Security -InstanceId 4626 -After $today -Before $tomorrow