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

如何修改PowerShell脚本仅导出Windows日志中严重、警告和错误事件

Windows事件日志分级导出修改指南

需求说明

你需要导出Windows事件日志中仅包含*严重(级别1)、错误(级别2)、警告(级别3)*的事件,目前已验证筛选命令可生效,需要找到现有全量导出脚本的修改位置完成逻辑调整。
你之前测试可用的筛选命令如下:

Get-WinEvent -FilterHashTable @{LogName = "System"; Level=1,2,3; StartTime=((Get-Date).AddDays(-7))} -ComputerName "server1" #| Out-GridView

修改位置说明

你的现有脚本使用wevtutil epl命令实现全量日志导出,无筛选逻辑,需要修改Foreach($log in $logArray)循环内的导出代码段,将级别筛选规则加入导出逻辑即可,不需要改动其他配置代码。

两种修改方案选其一即可:

方案1:直接修改原有wevtutil命令,新增筛选参数

不需要调整整体结构,直接把循环内的wevtutil epl $log $destination替换为以下命令即可,wevtutil会直接按级别筛选后导出为evtx文件:

# 筛选级别为1/2/3的事件后导出
wevtutil epl $log $destination /q:"*[System/Level<=3]"

方案2:替换为你已验证的Get-WinEvent逻辑

如果你习惯用PowerShell原生命令,可以把原有导出逻辑替换为以下代码,实现同样的筛选效果:

# 按级别筛选后导出为evtx文件
Get-WinEvent -FilterHashTable @{LogName = $log; Level=1,2,3; StartTime=((Get-Date).AddDays(-7))} | Export-WinEvent -Path $destination

修改后完整循环示例

Foreach($log in $logArray)
{
    $destination = $destinationpath + $servername + "-" + $log + "-" + $logdate + ".evtx"
    Write-Host "Extracting the $log file now."
    # 替换为带筛选的导出命令即可,以下是方案1的示例
    wevtutil epl $log $destination /q:"*[System/Level<=3]"
}

内容的提问来源于stack exchange,提问作者Jeremy F.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 19:30:00