必须同时启用全局对象访问审核策略并为目标文件/文件夹配置sacl,缺一不可,否则安全日志不记录4663事件;需通过gpedit.msc启用“审核文件系统”策略,再右键文件夹→属性→安全→高级→审核选项卡添加含读写删等操作的sacl条目,并勾选“替换所有子对象”。
windows 利用 ntfs 权限中的审核功能记录文件访问日志,本质是“策略 + sacl”双驱动机制:全局审核策略只是开关,真正决定“记不记、记什么、记谁”的,是目标文件或文件夹上配置的系统访问控制列表(sacl)。缺一不可,否则安全日志里不会出现 4663 等访问事件。
启用对象访问审核策略(全局开关)
这是所有文件访问审计的前提。没有它,SACL 配置完全无效。
- 按 Win + R 输入
gpedit.msc打开本地组策略编辑器(仅专业版/企业版支持) - 导航至:计算机配置 → Windows 设置 → 安全设置 → 高级审核策略配置 → 系统审核策略 → 对象访问
- 启用两项策略:审核文件系统 和 审核句柄操作,均勾选“成功”(如需捕获异常行为,可同时勾选“失败”)
- 为兼容性考虑,也建议同步启用传统路径:计算机配置 → Windows 设置 → 安全设置 → 本地策略 → 审核策略 → 审核对象访问,同样勾选“成功”
- 执行
gpupdate /force强制刷新策略,确保生效
为目标文件或文件夹配置 SACL(精准记录核心)
SACL 是 NTFS 层面的审计规则,它不继承、不自动传播,必须手动添加并明确作用范围。
- 右键目标文件或文件夹 → “属性” → “安全” → “高级” → 切换到“审核”选项卡
- 点击“添加”,在“选择用户或组”中输入主体,例如 Everyone(全用户)或具体安全组(如 HR-Team)
- 在权限列表中,勾选要审计的操作:读取数据/列出目录(对应打开、浏览)、写入数据/添加文件(对应保存、修改)、删除、更改权限等;注意右侧显示的是“仅审核”,不是“允许”
- 在“应用于”下拉菜单中,选择该文件夹、子文件夹和文件;若需确保所有子项都被覆盖,勾选底部的替换所有子对象的审核项
验证与查看访问日志(确认是否真实生效)
配置完成后,必须验证日志是否生成,避免因 NTFS 格式、权限或日志容量问题导致静默失效。
- 确认卷为 NTFS 格式(FAT32 不支持 SACL);可在命令行运行
fsutil fsinfo ntfsinfo C:查看 - 打开事件查看器(
eventvwr.msc)→ 左侧展开Windows 日志 → 安全 - 右键“安全”→“筛选当前日志”,在“事件ID”栏填入 4663,关键词勾选“审核成功”
- 执行一次目标文件的打开或保存操作,刷新日志;双击事件查看详细信息:对象名称(路径)、访问掩码(如 0x80 表示读取)、进程名(如 explorer.exe)、账户名 和 登录 ID
关键注意事项(常见失效原因)
很多配置看似完成却无日志,往往卡在这几个基础环节:
- 日志空间不足:默认安全日志仅 20MB,满后旧事件被覆盖;建议右键“安全”→“属性”,将日志大小设为 512MB 或更大,并启用“按需存档”
- 权限不匹配:操作账户对目标资源无实际访问权限时,可能只触发 4656(句柄请求失败),但不会生成 4663;确保用户有 NTFS 读/写权限
-
未重启或未刷新:SACL 修改后无需重启,但组策略变更需
gpupdate /force;某些旧系统仍建议重启一次 -
家庭版限制:Windows 家庭版无
gpedit.msc,需通过 PowerShell 或注册表启用审核策略,且部分高级审核项不可用











