![使用 Powershell 列出 AD 组的管理员](https://linux22.com/image/734038/%E4%BD%BF%E7%94%A8%20Powershell%20%E5%88%97%E5%87%BA%20AD%20%E7%BB%84%E7%9A%84%E7%AE%A1%E7%90%86%E5%91%98.png)
我是 Powershell 脚本的新手,需要一些建议/指点。我正在尝试编写一个脚本,列出 AD 组的“管理员”。有人有这方面的经验吗?任何示例或链接都会非常有帮助。
答案1
我猜你说的是 AD 组管理器和复选框“管理器可以更新成员列表”。此复选框修改组 DACL 并授予写入成员属性的权限。
答案很简单。使用 AD 对象属性中设置的值。这只会在属性中提供一个名称(如 ADUC 中所示)。
Get-ADObject -Identity (Get-ADGroup -Identity "Group Name" -Properties managedby).managedby
很难回答。查询 AD 对象 DACL 以获取成员属性的 WriteProperty。这不包括 WriteAllProperty 或完全权限!通过示例,过滤掉这些应该不难,但它们可能是默认的系统 DACL 条目。
$Group = Get-ADGroup -Identity "Group Name"
$ACL = Get-Acl -Path ('AD:' + $Group.distinguishedName)
$Access = $ACL.Access
#"bf9679c0-0de6-11d0-a285-00aa003049e2" is GUID for object property "members"
$GroupAdmins = $Access | Where-Object -FilterScript {$_.ObjectType -eq "bf9679c0-0de6-11d0-a285-00aa003049e2" -and $_.ActiveDirectoryRights -eq "WriteProperty"}
$Groupadmins.IdentityReference| ForEach-Object {Get-ADUser -Identity $_.translate([System.Security.Principal.SecurityIdentifier]).Value}