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

Windows可移动介质事件ID4656未上报文件夹实际名称求助

解决4656事件显示默认文件夹名称的问题

核心原因

Windows创建新文件夹时,会先以系统默认名称“New Folder”生成对象,此时触发4656事件;用户后续修改文件夹名称的操作,会触发**4663事件(对象被访问)+ 4657事件(对象属性修改)**的组合,你需要关联这两类事件才能获取最终的文件夹名称。

具体关联逻辑

  • 捕获目标路径下的4656事件(操作类型为CreateFile,对象名称包含“New Folder”),记录该事件的SubjectLogonId(用户登录ID)和ObjectHandleId(对象句柄ID)。
  • 查找同一用户登录ID下,句柄ID匹配的4657事件:该事件的ObjectType为File,AttributeValue字段会包含修改后的文件夹名称,OperationType为Rename。

PowerShell处理示例

# 筛选目标路径下的4656新建文件夹事件
$newFolderEvents = Get-WinEvent -FilterHashtable @{
    LogName = 'Security'
    Id = 4656
} | Where-Object {
    $_.Properties[6].Value -match 'New Folder' -and $_.Properties[4].Value -eq 'CreateFile'
}

foreach ($event in $newFolderEvents) {
    $logonId = $event.Properties[2].Value
    $handleId = $event.Properties[10].Value
    $originalPath = $event.Properties[6].Value

    # 关联查找对应的4657重命名事件
    $renameEvent = Get-WinEvent -FilterHashtable @{
        LogName = 'Security'
        Id = 4657
    } | Where-Object {
        $_.Properties[2].Value -eq $logonId -and
        $_.Properties[9].Value -eq $handleId -and
        $_.Properties[11].Value -eq 'Rename'
    }

    if ($renameEvent) {
        $finalName = $renameEvent.Properties[12].Value
        Write-Host "原路径:$originalPath | 最终名称:$finalName"
    } else {
        Write-Host "未找到重命名事件,名称保持默认:$originalPath"
    }
}

额外注意事项

  • 必须已启用文件系统的“对象属性修改”审核策略,否则4657事件不会被记录。
  • 若用户创建文件夹后未重命名,4656事件的默认名称就是最终名称,无需关联其他事件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 03:10:56