LDAP memberOf returns 没有结果
LDAP memberOf returns no results
我正在尝试在 ADUaC 中创建自定义查询以帮助我在系统中索引管理员。我已经缩小了需要列出其成员的安全组的范围,但我以某种方式滥用了 'memberOf' 属性,这会破坏查询。
(objectClass=user)(objectCategory=user)(memberOf=*)
以上查询适用于 return 所有用户,但是当我将通配符更改为其他任何内容时(例如 (memberOf=*Administrators*)
),查询 return 没有对象。
我已确认此查询有一个相关的安全组可以从中获取用户。我知道它不适用于主要组或嵌套用户,我现在只是想让它在基本级别上工作。任何人都知道如何让代码 return 用户是安全组的成员?
遗憾的是,您不能使用通配符 * 字符来过滤 distinguishedName 属性。原因是 X.500 标准。
http://www.ldapexplorer.com/en/manual/109010000-ldap-filter-syntax.htm
也许Powershell可以派上用场。像这样的东西可以解决问题:
#for just one group
get-adgroupmember -Recursive -Identity "domain admins"
#for a batch of groups
$adminsgroups = "Enterprise Admins","Domain admins"
foreach ($admingroup in $adminsgroups)
{
#with the recursive switch you get nested group members
get-adgroupmember -Recursive -Identity $admingroup
}
我正在尝试在 ADUaC 中创建自定义查询以帮助我在系统中索引管理员。我已经缩小了需要列出其成员的安全组的范围,但我以某种方式滥用了 'memberOf' 属性,这会破坏查询。
(objectClass=user)(objectCategory=user)(memberOf=*)
以上查询适用于 return 所有用户,但是当我将通配符更改为其他任何内容时(例如 (memberOf=*Administrators*)
),查询 return 没有对象。
我已确认此查询有一个相关的安全组可以从中获取用户。我知道它不适用于主要组或嵌套用户,我现在只是想让它在基本级别上工作。任何人都知道如何让代码 return 用户是安全组的成员?
遗憾的是,您不能使用通配符 * 字符来过滤 distinguishedName 属性。原因是 X.500 标准。
http://www.ldapexplorer.com/en/manual/109010000-ldap-filter-syntax.htm
也许Powershell可以派上用场。像这样的东西可以解决问题:
#for just one group
get-adgroupmember -Recursive -Identity "domain admins"
#for a batch of groups
$adminsgroups = "Enterprise Admins","Domain admins"
foreach ($admingroup in $adminsgroups)
{
#with the recursive switch you get nested group members
get-adgroupmember -Recursive -Identity $admingroup
}