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

如何使用PowerShell从SMBServer审计日志提取客户端地址

提取SMBServer审计日志EventID 3000中的客户端IP地址

你可以通过修改Select-Object的逻辑,用正则表达式从Message字段中提取Client Address:后的IP地址,替换原有的完整Message内容,同时输出符合要求的格式。

修改后的PowerShell脚本如下:

$eventId = 3000
$logName = 'Microsoft-Windows-SMBServer/Audit'

$logs = Get-WinEvent -FilterXPath "*[System/EventID=$eventId]" -LogName $logName -ErrorAction SilentlyContinue | 
    Select-Object TimeCreated, Id, 
    @{
        Name = 'Message'
        Expression = {
            # 正则匹配Client Address后的IPv4地址
            if ($_.Message -match 'Client Address:\s+(\d+\.\d+\.\d+\.\d+)') {
                $matches[1]
            } else {
                # 匹配失败时返回占位符,可按需调整
                'N/A'
            }
        }
    }

# 输出指定格式的内容
"TimeCreated, Id, Message"
$logs | ForEach-Object { "$($_.TimeCreated), $($_.Id), $($_.Message)" }

关键说明

  • 用计算属性(@{Name=; Expression=})替换原Message字段,通过正则表达式精准捕获IP:
    • \s+匹配Client Address:后任意数量的空白字符
    • (\d+\.\d+\.\d+\.\d+)捕获标准IPv4地址格式
  • 若日志中未匹配到IP,会返回N/A作为占位符,可根据需求修改为空白或其他标识

示例输出

TimeCreated, Id, Message
12/31/2023 3:41:09 AM , 3000, 10.10.7.7
12/31/2023 3:41:09 AM , 3000, 10.10.7.15

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 00:33:10