获取不在父组中的所有 AD 用户

获取不在父组中的所有 AD 用户

我有一个名为 staff 的组。它是几个嵌套组的父组。我需要审核该组以列出不属于该组或其内嵌套子组的用户。我发现脚本会给我不属于 Staff 组的用户,但它不包括任何子组,因此用户可以是子组的一部分,但仍被列为不在父组中。我不想为父组的每个子组编写脚本。

有什么方法可以列出不属于某个组的所有帐户以及其所有子帐户吗?

答案1

您可以使用所谓的LDAP_MATCHING_RULE_IN_CHAIN运算符来运行单个 LDAP 查询。此运算符的数字 OID 是1.2.840.113556.1.4.1941。通过将数字 OID 放在属性和要搜索的值之间,您可以在 LDAP 搜索中请求此类选项。(attribute:OID:=DN)您可以使用 PowerShell cmdLet 运行 LDAP 查询,如下所示:

get-adobject -ldapfilter "(&(objectcategory=person)(objectclass=user)(!memberof:1.2.840.113556.1.4.1941:=CN=some,CN=group,DC=yourco,DC=com))"

此查询还使用 not (!) 运算符,因为您要查找不是该组的嵌套成员的用户。您还可以通过选择“自定义搜索”和“高级”选项卡通过 ADUC/DSA 运行 LDAP 查询。图形用户界面搜索

两篇 MS 文章介绍了这一点以及实现这一点的 LDAP 搜索语法的一些其他细节:

相关内容