Get-Winevent:如何获得正确的SecurityDesciptor? (customSD)

时间:2017-10-19 17:51:15

标签: powershell dsc

我试图获取系统和应用程序事件日志的安全描述符,看看它是否正确。当您将其更改为自定义设置时,将在注册表项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中也失败了因为验证变更的测试总是失败)

知道发生了什么事吗?

1 个答案:

答案 0 :(得分:0)

我不确定为什么Get-WinEvent没有提供更新的值,但您可以使用DSC Registry resource检查注册表值而不是Get-WinEvent。