使用 powershell 获取和添加活动目录域 OU 审计规则

使用 powershell 获取和添加活动目录域 OU 审计规则

我想使用 powershell 来编写脚本来显示和编辑 Active Directory 对象的审计规则,而不是通过 GUI 进行操作,如下所述:从 Active Directory 用户和计算机中,在“查看”菜单中启用“高级功能”,在左窗格中选择“域控制器 OU”右键单击“域控制器 OU”对象并选择“属性”,选择“安全”选项卡,选择“高级”按钮,然后选择“审计”选项卡

这是我目前所拥有的。首先获取 OU 的 distinguishedName:

import activedirectory
set-location ad:
dir

将上面 dir 输出中的正确的 distinguishedName 插入到 Get-Acl 中:

$acl = Get-Acl -Path "DC=something,DC=somethingElse"

$acl 对象的 GetSecurityDescriptorSddlForm 方法似乎相关,但没有提供人性化的输出。接下来我尝试:

$domain = Get-AdDomain -Server "serverName"
$domainSID = $domain.DomainSID
$acl.GetAuditRules(1,1,$domainSID)

但这会出现错误:无法将 GetAuditRules 的值为“...”的参数 targetType 转换为类型“System.Type”:无法将类型 System.Security.Principal.SecurityIdentifier 的“...”值转换为类型“System.Type”

GetAuditRules 的文档似乎说它将接受 SecurityIdentifier 作为第三个参数,这就是我认为我提供给 GetAuditRules 方法的参数。 https://docs.microsoft.com/en-us/dotnet/api/system.security.accesscontrol.commonobjectsecurity.getauditrules?view=dotnet-plat-ext-3.1

此外,这里的帖子似乎相关,但我不明白如何选择正确的构造函数方法来创建 ActiveDirectoryAuditRule,以及如何收集所需的参数,例如 GUID https://social.technet.microsoft.com/Forums/en-US/70881826-6189-48c0-8ee7-0d79aa18f085/powershell-to-set-audit-flags-on-ou?forum=ITCG

任何帮助都非常感谢。谢谢!

答案1

这个用于注册表但看起来非常相似。尝试在 get-acl 中使用“-audit”开关。

https://stackoverflow.com/questions/13509667/how-to-get-audit-rule-in-acl-object-with-getauditrules-on-registry-key-in-powe

$acl = get-acl-path$pathtoOU-Audit

$acl.getauditrules($true,$true,[System.Security.Principal.NTAccount])

相关内容