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

PowerShell调用Get-WinEvent获取当日Windows事件日期格式报错如何解决

PowerShell Get-WinEvent 日期格式错误解决方案

错误原因

你触发格式错误的核心原因有两点:

  • .NET 日期格式符使用错误:代表「天」的格式符是小写dd,代表「月份」的格式符是大写MM,你使用的DD/MM/YY属于无效格式定义,无法被正确解析。
  • 不必要的字符串转换操作:Get-WinEvent的FilterHashtable参数原生支持DateTime类型的对象作为StartTime、EndTime的取值,不需要手动转为字符串,转字符串反而容易因为系统区域的日期格式规则差异出现兼容性问题。

正确代码(获取当日所有事件)

直接传入DateTime对象即可,不需要做格式转换:

Get-WinEvent -ComputerName myComputer -FilterHashtable @{
  StartTime = [datetime]::Today
  EndTime = [datetime]::Today.AddDays(1).AddTicks(-1)
}

上述代码中[datetime]::Today默认取当日零点,AddDays(1).AddTicks(-1)取当日最后一刻,覆盖全天所有时间范围。

若需手动指定日期字符串的写法

如果需要筛选指定日期的事件,建议使用ParseExact方法固定格式避免区域问题,示例如下:

# 示例筛选2024年10月5日的事件
Get-WinEvent -ComputerName myComputer -FilterHashtable @{
  StartTime = [datetime]::ParseExact('05/10/2024', 'dd/MM/yyyy', $null)
  EndTime = [datetime]::ParseExact('05/10/2024', 'dd/MM/yyyy', $null).AddDays(1).AddTicks(-1)
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 08:45:06