我试图获取系统和应用程序事件日志的安全描述符,看看它是否正确。当您将其更改为自定义设置时,将在注册表项customSD中设置该设置。问题是,似乎Get-Winevent只返回channelAccess的默认设置并忽略任何customSD(在Windows 2016服务器上发生这种行为)
这样做:
$log = Get-WinEvent -ListLog "system"
$log.SecurityDescriptor = $SecurityDescriptor
$log.SaveChanges()
将在HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ EventLog \ System下正确创建customSD注册表项,它包含正确的新SDDL字符串。
然后,运行这个:
$log = Get-WinEvent -ListLog "system"
$log.SecurityDescriptor
这将返回默认的channelAccess SDDL,完全忽略customSD键。因此,它无法验证SDDL是否成功应用。(读取Reg键不是一个选项,因为我们想在DSC中使用它,而DSC使用Get-Winevent cmdlet。而且,它在DSC中也失败了因为验证变更的测试总是失败)
知道发生了什么事吗?