我们有一个小组:“MyTest”在
OU=Domain_users,DС=my,DС=test
我们尝试在该组中查找用户,尝试:
(&(|(sAMAccountName=*$str*)(givenName=*$str*)(sn=*$str*)(middlename=*$str*))(memberOf=CN=MyTest))
和:
(memberOf=CN=MyTest,OU=Domain_users,DС=my,DС=test)
但这不起作用。当我们使用按用户名过滤时,它就可以工作。
在您的过滤器中,
(memberOf=CN=MyTest)
将确保不返回任何结果。属性
memberOf
是一个 DN,它始终是完整值
CN=MyTest,OU=Domain_users,DС=my,DС=test
如果您无法使用上面的完整 DN 找到任何内容,则只需打印完整的过滤器(到控制台或日志)以确保您拥有有效的 LDAP 过滤器。
编辑
想一想,您无法搜索 LDAP 中所有属性的包含性。尤其不是
sAMAccountName
据我所知。
先试试这个:
(&
(|
(sAMAccountName=$str*)
(givenName=$str*)
(sn=$str*)
(middlename=$str*)
)
(memberOf=CN=MyTest,OU=Domain_users,DС=my,DС=test)
)
如果有效,您可以尝试使用重复的 OR 来搜索属性:
(|(sAMAccountName=*$str)(sAMAccountName=$str*))
记下通配符的位置。