我有一个名为 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 搜索语法的一些其他细节: