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

PowerShell用通配符过滤UMFD、DWM开头的安全日志数组行

解决方案

你需要的过滤逻辑可以直接追加在原有管道中实现,利用PowerShell内置的Where-Object条件筛选即可,针对UMFD-xx、DWM-xx这类前缀固定、后缀可变的用户名,使用通配符匹配规则过滤即可。

修改后完整代码

$FromDate = (Get-Date).AddSeconds(-3)
$ToDate = Get-Date
$L = Get-Events -LogName 'Security' -Id 4625,4647,4648 -DateFrom $FromDate -DateTo $ToDate `
    -NamedDataExcludeFilter @{ 'TargetUserName' = 'System','Network Service','Local Service' } | `
    # 新增过滤规则:排除UMFD和DWM开头的用户名
    Where-Object { $_.TargetUserName -notlike 'UMFD-*' -and $_.TargetUserName -notlike 'DWM-*' } | `
    Sort-Object TimeCreated 

if ( $L.Count -ne 0 )
{
    "From: ", $FromDate, " to ", $ToDate | 
        Out-File -FilePath C:\Users\Scomage\Documents\SecLog.txt -Append -Width 500 -NoNewline

    $L | Format-Table -Property Date, Id, LogonType, LogonProcessName, TargetUserName, IpAddress, IpPort, TargetLogonId, Action, KeywordDisplayName | `
        Out-File -FilePath C:\Users\Scomage\Documents\SecLog.txt -Append -Width 500
}

补充说明

  • 如果你后续需要新增其他前缀的过滤规则,直接在Where-Object的判断条件里追加-and $_.TargetUserName -notlike '前缀-*'即可
  • 如果你需要更高的匹配精度,也可以把条件替换为$_.TargetUserName -notmatch '^(UMFD|DWM)-\d+$',会严格校验后缀为数字的格式
  • 当前返回的结果集规模很小,新增这个过滤步骤不会有任何性能损耗,不需要修改原有Get-Events的调用逻辑,调试也更方便

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 03:48:04