使用 powershell 在 Active Directory 对象上的 ACL 中设置“写入成员属性”

foo*_*foo 4 powershell acl active-directory active-directory-group

我想以编程方式允许 AD 中的给定安全主体(用户或组)对memberAD 组上的属性具有写入权限。

我假设它的形式如下:

$GroupObject = Get-ADGroup $group
$ACL = Get-ACL AD:$GroupObject
$ACE = New-Object System.Security.AccessControl.ActiveDirectoryAccessRule (
    $manager,
    ...
)
$ACL.AddAccessRule($ACE)
Set-ACL -Path AD:$GroupObject -AclObject $ACL
Run Code Online (Sandbox Code Playgroud)

我找不到的是有关如何完成...这项工作还需要做什么的文档。即使是手动进行潜水并检查生成的 ACL 对象也被证明是困难的!

Gab*_*uci 5

您可以将此构造函数用于ActiveDirectoryAccessRulehttps://msdn.microsoft.com/en-us/library/cawwkf0x (v=vs.110).aspx

它应该看起来像这样:

$ACE = New-Object System.DirectoryServices.ActiveDirectoryAccessRule(
    $manager.SID,
    [System.DirectoryServices.ActiveDirectoryRights]::WriteProperty,
    [System.Security.AccessControl.AccessControlType]::Allow,
    "bf9679c0-0de6-11d0-a285-00aa003049e2",
    [DirectoryServices.ActiveDirectorySecurityInheritance]::All
)
Run Code Online (Sandbox Code Playgroud)

请注意,您需要传递用户的 SID ( $manager.SID)。

神秘的GUID是属性的GUID member。您可以通过查看 Microsoft 属性文档来找到这一点。这是 的页面member,您可以在其中找到“System-Id-Guid”:https://msdn.microsoft.com/en-us/library/ms677097 (v=vs.85).aspx