首页/系统/Windows 运维速查/事件对象结构与字段提取

事件对象结构与字段提取

Get-WinEvent 的 Properties 数组按事件模板顺序排列:提取登录账号、进程名等要看 XML 定义;SystemXml 提供元数据。

Windows 运维速查系统更新于 2026-10-12
用途精确提取事件里的字段
查看$_.Properties 按序数组;$_ | Select-Object -ExpandProperty Xml 或 ToXml()
技巧先用一条样本核对索引,再批量提取

常用示例

常用示例
$e = Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4624} -MaxEvents 1
$e.Properties[5].Value               # 目标用户名(示例:索引随版本核对)
$e | Select-Object TimeCreated, Id, ProviderName
($e).ToXml() | Select-Object -First 40
# 批量提取
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4624} -MaxEvents 20 | Select-Object TimeCreated, @{n='User';e={$_.Properties[5].Value}}, @{n='IP';e={$_.Properties[18].Value}}
字段索引在不同事件/版本可能变化,脚本上线前用已知账号登录做一次冒烟验证。

易错点

  • Properties 值与图形界面对应关系要核对,别照抄网上的索引
  • Message 依赖本地化模板,程序解析优先用 Properties/Xml

数据来源与参考

  • Microsoft Learn:事件 XML 结构
  • Microsoft Learn:Get-WinEvent 对象模型

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌