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

如何缩小Get-WinEvent查询范围?匹配指定进程并返回最新记录

筛选特定进程的最新安全日志记录(PowerShell)

当然可以用Where-Object实现需求,下面是修改后的完整代码,直接就能用:

Get-WinEvent -FilterHashtable @{
    LogName = 'Security'
    ID = 4688
} | Where-Object { $_.Properties[5].Value -like '*cmd.exe' } |
    Select-Object @{name='NewProcessName';expression={ $_.Properties[5].Value }}, TimeCreated |
    Sort-Object TimeCreated -Descending |
    Select-Object -First 1

关键步骤说明:

  • 筛选目标进程:通过Where-Object判断事件中的进程名(对应$_.Properties[5].Value)是否匹配cmd.exe。用-like '*cmd.exe'是模糊匹配,不管完整路径,只要文件名是cmd.exe就会被筛选;如果要精确匹配完整路径(比如C:\Windows\System32\cmd.exe),把条件改成-eq 'C:\Windows\System32\cmd.exe'即可。
  • 提取最新记录:用Sort-Object TimeCreated -Descending把事件按生成时间倒序排列,再通过Select-Object -First 1取排序后的第一条,就是最新的目标进程记录。
  • 时间字段辅助:额外保留了TimeCreated字段,方便你确认记录的生成时间,不需要的话可以从Select-Object中删掉这个字段。

注意事项:

  • 读取Security日志需要管理员权限,记得右键PowerShell选择「以管理员身份运行」。
  • 如果日志量过大,查询速度较慢,可以在FilterHashtable里添加时间范围限制,比如StartTime = (Get-Date).AddDays(-7),只查询最近7天的日志。

内容的提问来源于stack exchange,提问作者Jibun no Kage

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 12:47:05