关键是从权限源头切断普通用户清除权,需用组策略强制设定安全日志sddl:o:bag:syd:(a;;0x5;;;sy)(a;;0x5;;;ba),仅授权system和administrators读取与清除,并禁用自动覆盖、扩大日志容量至1gb,启用审核策略更改以记录4719事件。
要防止普通用户清理事件日志,关键不是“禁止删除”这个动作本身,而是从权限源头切断其清除权限。windows 安全日志默认只允许 system 和 administrators 组读取与清除,但若策略被弱化或本地权限被误改,普通用户就可能获得清除权。配置核心是用组策略统一锁定访问控制列表(sddl),而非依赖手动注册表修改。
用组策略强制设定安全日志访问权限
这是最稳妥、可审计、易复用的方式:
- 打开本地组策略编辑器:Win+R → 输入 gpedit.msc → 回车
- 导航至:计算机配置 → 管理模板 → Windows 组件 → 事件日志服务 → 安全
- 启用策略项:“配置日志访问”
- 在“安全描述符”框中填入标准 SDDL 字符串:
O:BAG:SYD:(A;;0x5;;;SY)(A;;0x5;;;BA)
其中 0x5 = 读取 + 清除权限(0x1 + 0x4),仅授予 SYSTEM(SY)和 Administrators(BA),不含 Users、Everyone 或普通用户 SID - 点击“确定”并刷新策略:gpupdate /force
验证当前安全日志权限是否生效
策略生效后必须验证,避免配置未落地:
PyCharm 2026.2.0.1 Windows版提供 JetBrains 官方 2026.2.0.1 版本安装包,适合在Windows系统上进行 Python 项目开发、运行、调试和测试。
- 以管理员身份运行命令提示符,执行:
wevtutil gl Security | findstr "securityDescriptor" - 检查输出中是否只出现 (A;;0x5;;;SY) 和 (A;;0x5;;;BA),且无类似 (A;;0x4;;;S-1-5-21-...)(即非管理员用户的清除权限位)
- 也可在事件查看器中右键“安全性”日志 → “属性” → “安全”选项卡,确认普通用户或 Users 组不在列表中,或即使存在也**无“清除日志”勾选**
禁用本地注册表直接干预
绕过组策略直接改注册表(如 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Security\CustomSD)风险高,易导致日志服务异常:
- 组策略启用后,系统会自动忽略 CustomSD 注册表值,该值实际失效
- 若此前已手工修改过,建议清空或删除该注册表项,避免策略冲突
- 日常运维中,应禁止非管理员账户拥有对 EventLog 注册表路径的写入权限,防止权限被二次篡改
配套加固:关闭自动覆盖 + 扩大容量
防止日志被“静默擦除”,补强审计连续性:
- 在事件查看器中右键“安全性”日志 → “属性” → 取消勾选 “按需覆盖事件(最早的事件)”
- 将“最大日志大小”设为 1GB(1073741824 字节):
wevtutil sl Security /ms:1073741824 - 结合启用高级审核策略(如“审核策略更改”),确保有人试图关闭审计时能留下 4719 事件,形成闭环防护










