【问题标题】:Get events from yesterday获取昨天的事件
【发布时间】:2017-01-26 14:08:39
【问题描述】:

我正在尝试使用 PowerShell 从昨天开始的 TaskScheduler 事件中获取结果。这是我的代码:

Get-WinEvent -LogName Microsoft-Windows-TaskScheduler/Operational  -MaxEvents 5 |
    Where-Object ($_.TimeCreated -gt [DateTime]::Today.AddDays(-1))
Format-List *

注意事项:

  1. -MaxEvents 5 是在我开发时限制输出。

  2. 当我删除 Where-object 时,cmdlet 会返回一个完整列表。这是意料之中的,因为没有应用过滤。所以错误一定是在过滤的方式上。

【问题讨论】:

  • 您的过滤器表达式有效,但您的语法错误。过滤器表达式必须在大括号中,而不是括号中:... | Where-Object { ... } | ...

标签: powershell event-log taskscheduler


【解决方案1】:

您可以使用Get-WinEventFilterHashTable 属性进行过滤,这比检索所有事件然后只过滤您想要的事件要快。

这会从系统日志中检索最后一天的所有事件,因为我没有任何 TaskScheduler 日志记录。

$date = (Get-Date).AddDays(-1)
$events = Get-WinEvent -FilterHashTable @{ LogName = "System"; StartTime = $date;}
$events | Format-List

您几乎可以过滤事件日志中的任何字段 - further info on this

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多