Get-Winevent:如何获得正确的SecurityDesciptor? (customSD)
问题描述:
我试图获取系统和应用程序事件日志的安全描述符,看看它是否正确。当您将其更改为自定义设置时,该设置将在注册表项customSD中进行设置。问题是,它似乎得到-Winevent只返回channelAccess的默认设置,并忽略任何customSD(这种行为发生在Windows 2016服务器)Get-Winevent:如何获得正确的SecurityDesciptor? (customSD)
这样做:
$log = Get-WinEvent -ListLog "system"
$log.SecurityDescriptor = $SecurityDescriptor
$log.SaveChanges()
可以正确地创建下customSD注册表项HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ EventLog \ System,它包含正确的新的SDDL字符串。
但随后,运行以下命令:
$log = Get-WinEvent -ListLog "system"
$log.SecurityDescriptor
这将返回默认channelAccess SDDL,完全无视customSD关键。因此,它无法验证SDDL是否已成功应用(读取Reg键不是一个选项,因为我们想在DSC中使用它,而DSC使用Get-Winevent cmdlet,而且它也不能在DSC中使用因为验证变更的测试总是失败)
任何想法是怎么回事?
我想是的。这意味着不会使用xWinEventLog来设置事件日志安全性,但由于它不能像预期的那样工作,因此直接修改注册表将是一种解决方法。 – Kinwolf