我试图使用PowerShell从昨天开始从TaskScheduler事件中获取结果。这是我的代码:
Get-WinEvent -LogName Microsoft-Windows-TaskScheduler/Operational -MaxEvents 5 |
Where-Object ($_.TimeCreated -gt [DateTime]::Today.AddDays(-1))
Format-List *
注意:
-MaxEvents 5
是在我开发时限制输出。
当我删除Where-object
时,cmdlet会返回完整列表。这是预期的,因为不应用过滤。因此,错误必须与过滤的方式相同。
答案 0 :(得分:1)
您可以使用FilterHashTable
Get-WinEvent
属性进行过滤,它会比检索所有事件更快,然后只过滤您想要的事件。
这将从系统日志中检索最后一天的所有事件,因为我没有任何TaskScheduler的日志记录。
$date = (Get-Date).AddDays(-1)
$events = Get-WinEvent -FilterHashTable @{ LogName = "System"; StartTime = $date;}
$events | Format-List
您可以过滤事件日志中的几乎任何字段 - further info on this