必须同时启用系统级对象访问审核策略并为目标文件/文件夹配置SACL审计规则,缺一不可;否则安全日志不会记录4663事件。需通过gpedit.msc或auditpol命令启用“审核文件系统”或“审核对象访问”,再右键文件夹→属性→安全→高级→审核选项卡添加含读取、写入、删除等操作的SACL条目,并勾选“替换所有子对象”。
要让 windows 记录谁在什么时候访问、修改或删除了文件,不能只开个开关就完事——必须同时满足两个硬性条件:系统级审核策略启用 + 目标文件/文件夹配置了 sacl 审计规则。缺一不可,否则安全日志里不会出现任何 4663 事件。
启用对象访问审核策略
这是全局开关,决定系统是否“愿意记录”对象类操作(包括文件、注册表、服务等):
- 按 Win + R 输入 gpedit.msc(专业版/企业版)或 secpol.msc(家庭版不可用,需升级或改用命令行)
- 路径一(推荐,更精细):计算机配置 → Windows 设置 → 安全设置 → 高级审核策略配置 → 系统审核策略 → 对象访问 → 启用“审核文件系统”,勾选“成功”和/或“失败”
- 路径二(兼容旧环境):计算机配置 → Windows 设置 → 安全设置 → 本地策略 → 审核策略 → 双击“审核对象访问”,勾选“成功”和/或“失败”
- 命令行快速启用(管理员权限):auditpol /set /category:"Object Access" /success:enable /failure:enable
- 执行 gpupdate /force 刷新策略,或等待约 90 分钟自动更新
为文件或文件夹添加 SACL 审计项
策略只是“允许记录”,真正触发日志的是 SACL——它告诉系统“对这个具体文件,哪些人、做哪些事时要记下来”:
- 右键目标文件或文件夹 → “属性” → “安全” → “高级” → 切换到“审核”选项卡 → “添加”
- 点击“选择主体”,输入 Everyone(监控所有人)或指定用户/组(如 Domain Users)
- 在权限列表中,仅勾选你关心的操作,例如:读取数据/列出目录(对应打开、复制)、写入数据/添加文件(对应编辑、保存)、删除子文件夹和文件(含删除动作)
- 每项右侧必须显示为“仅审核”(不是“允许”或“拒绝”),并分别勾选“成功”和/或“失败”
- 若需审计子项,务必勾选“替换所有子对象的可审核项”——SACL 不自动继承
- 注意:目标必须是 NTFS 格式分区,FAT32 不支持 SACL
查看与定位 4663 文件访问日志
配置生效后,每次匹配的访问都会生成一条安全事件,核心是 ID 4663:
- 按 Win + R 输入 eventvwr.msc → 左侧展开“Windows 日志” → “安全”
- 右键“安全” → “筛选当前日志” → 在“事件ID”栏填入 4663,可加条件如“任务类别”选“文件系统”
- 双击任一 4663 事件,在“详细信息”页签里重点看:Subject(操作账户)、Object Name(文件完整路径)、Access Mask(十六进制操作码,如 0x10000 表示写入)、Process Name(调用进程,如 notepad.exe)
- 搭配 4656(句柄请求)一起看,能还原更完整的上下文,比如是哪个程序打开了该文件
- 若日志为空,先检查:NTFS 格式?SACL 是否已添加?auditpol 是否显示已启用?日志是否被覆盖(右键“安全”→属性→增大日志大小)?
实用建议与避坑提醒
实际部署中,几个关键点容易被忽略,直接导致“设了等于没设”:
- 不要全开“成功+失败”:尤其对高频访问文件夹,日志会爆炸式增长。建议先只开“失败”,排查异常访问;确认必要后再启用“成功”
- 权限≠审计:用户没有读写权限,也会触发 4663(失败事件),但前提是 SACL 中勾选了“失败”且策略已启用
- 域环境优先用 GPO:通过组策略管理控制台(GPMC)统一部署,避免每台机器手动配,还能强制继承 SACL
- PowerShell 可批量设 SACL:对大量文件夹,可用 Set-Acl -Audit 或自定义脚本,比手动点快得多
- 日志保留要规划:默认安全日志仅 20MB 且覆盖旧事件,建议设为 200MB 以上,并启用“按需存档”或定期导出


















