我正在尝试向事件日志上的网络服务帐户 (SID S-1-5-20) 授予权限“Microsoft-Windows-CAPI2/操作”(见下图)。但是我需要在 1000 多台服务器上推广这一更改,而且还有更多服务器即将推出。因此,我的解决方案必须以某种方式链接到 GPO(出于技术原因,我试图避免在 GPO 中使用脚本)。
根据指示来自 Microsoft,你必须:
- 在相关事件日志项下创建一个名为“CustomSD”的新注册表项'HKLM:\SYSTEM\CurrentControlSet\services\eventlog\custom_log‘
- 创建一个具有以 SSDL 格式定义的适当权限的字符串“CustomSD”: O:BAG:SYD:(A;;0x7;;;BA)(A;;0x2;;;AU)(A;;0x1;;;S-1-5-20)
- 重启主机并验证权限
但是,当我重新启动主机并使用以下命令检查权限时,我可以看到新的权限未应用:
wevtutil get-log "Microsoft-Windows-CAPI2/Operational" OR
Get-WinEvent -ListLog "Microsoft-Windows-CAPI2/Operational" | Format-List -Property *
让我感到困惑的是,只有与主要事件日志相关的以下键可用:'HKLM:\SYSTEM\CurrentControlSet\services\eventlog\'
就我而言,我尝试过:
- 在“中创建一个新的注册表项”HKLM:\SYSTEM\CurrentControlSet\services\eventlog\CAPI2“>>没有起作用
- 在以下路径中创建注册表项 “HKLM:\SYSTEM\CurrentControlSet\services\eventlog\application\Microsoft-Windows-CAPI2”由于事件日志的名称存在>>不起作用
所以我的观点是,我不明白为什么权限没有更新。我做错了什么吗?我还检查了以下内容关联但似乎它只适用于'HKLM:\SYSTEM\CurrentControlSet\services\eventlog\'。
答案1
感谢@GregAskew的出色回答,我能够通过GPO推送事件日志权限。我的步骤如下:
- 创建新的 GPO 并浏览到注册表设置(位于计算机 > 首选项 > Windows 设置 > 注册表中)以更新“ChannelAccess”条目
- 在字段值数据中以 SDDL 格式添加适当的权限:
- 启用事件日志 CAPI2(默认情况下停用),将注册表项“Enabled”更新为 1
- 因此我的 GPO 如下所示:
激活并应用 GPO 后,您可以通过浏览注册表中的以下路径来检查目标客户端是否正确应用了权限
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WINEVT\Channels\<event log>
答案2
我使用 wevtutil 来设置权限:
wevtutil set-log "Microsoft-Windows-CAPI2/Operational" /channelaccess:O:BAG:SYD:(A;;0x7;;;BA)(A;;0x2;;;AU)(A;;0x1;;;S-1-5-20)
wevtutil get-log "Microsoft-Windows-CAPI2/Operational"
name: Microsoft-Windows-CAPI2/Operational
enabled: false
type: Operational
owningPublisher: Microsoft-Windows-CAPI2
isolation: Application
channelAccess: O:BAG:SYD:(A;;0x7;;;BA)(A;;0x2;;;AU)(A;;0x1;;;S-1-5-20)
logging:
logFileName: %SystemRoot%\System32\Winevt\Logs\Microsoft-Windows-CAPI2%4Operational.evtx
retention: false
autoBackup: false
maxSize: 1052672
publishing:
fileMax: 1