You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell Get-WinEvent EndTime参数异常:添加后无事件返回

Get-WinEvent 添加 EndTime 后返回“未找到事件”的问题排查

执行以下命令可正常返回应用日志事件:

Get-WinEvent -FilterHashtable @{logname="application";starttime="8/10/2022 10:00:00"}

但添加EndTime参数后,明明目标时间范围内存在事件记录,却返回“未找到事件”提示:

Get-WinEvent -FilterHashtable @{logname="application";starttime="8/10/2022 10:00:00";EndTime="8/11/2022 10:00:00"}

问题根源

  1. 日期格式的区域性解析错误:这是核心原因。Get-WinEvent的FilterHashtable在解析字符串格式的日期时,会遵循当前系统的区域设置。如果你的系统区域不是美式日期格式(MM/DD/YYYY),像"8/11/2022"这样的写法会被错误解析——比如中文区域(DD/MM/YYYY)下,它会被识别为11月8日,而非预期的8月11日,导致时间范围完全偏离,自然找不到对应事件。
  2. EndTime 的排他性过滤逻辑:EndTime的过滤规则是不包含指定时间点的事件,如果你的事件恰好触发于8/11/2022 10:00:00这个时间点,也会被排除,但这通常不是主要问题。

解决方法

方法1:使用ISO标准日期格式(推荐)

采用YYYY-MM-DD HH:mm:ss的格式,这种格式不受系统区域设置影响,解析准确率100%:

Get-WinEvent -FilterHashtable @{logname="application";starttime="2022-08-10 10:00:00";EndTime="2022-08-11 10:00:00"}

方法2:显式转换为DateTime对象

通过[DateTime]::ParseExact指定日期格式,强制按预期解析,避免区域干扰:

$startTime = [DateTime]::ParseExact("8/10/2022 10:00:00", "M/d/yyyy HH:mm:ss", $null)
$endTime = [DateTime]::ParseExact("8/11/2022 10:00:00", "M/d/yyyy HH:mm:ss", $null)
Get-WinEvent -FilterHashtable @{logname="application";starttime=$startTime;EndTime=$endTime}

方法3:匹配系统区域的日期格式

如果坚持使用短日期格式,需严格遵循当前系统区域的日期格式规则(比如中文区域用"10/8/2022"表示8月10日),但这种方法兼容性差,更换设备或修改区域设置后容易失效,不推荐。

内容的提问来源于stack exchange,提问作者Purclot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 04:18:15