php – LDAP / AD过滤器 – “objectclass not equal”不起作用

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – LDAP / AD过滤器 – “objectclass not equal”不起作用脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用LDAP Active Directory并尝试列出所有用户.我有这个完美的过滤器:
(&(objectclass=user)(|(memberOf=...)(memberOf=...)...)(|(userPRincipalname=...)(displayname=...)))

不幸的是,我们在AD中还有一个计算机单元和其他设备,其中包含对象类“用户”,因此,通过以前的过滤器,我获得了所有用户,计算机,设备,房间等.

这些计算机和设备还有一个对象类“计算机”,因此我需要使用Objectclass!=“computer”扩展过滤器,以便仅列出真实用户.到目前为止,我尝试过这些过滤器,它们都没有工作(没有数据返回!):

(&(objectclass=user)(!objectclass=computer)(|(memberOf=...)(memberOf=...)...)(|(userprincipalname=...)(displayname=...)))
(&(objectclass=user)(!(objectclass=computer))(|(memberOf=...)(memberOf=...)...)(|(userprincipalname=...)(displayname=...)))
(!(objectclass=computer))(&(objectclass=user)(|(memberOf=...)(memberOf=...)...)(|(userprincipalname=...)(displayname=...)))
(!objectclass=computer)(&(objectclass=user)(|(memberOf=...)(memberOf=...)...)(|(userprincipalname=...)(displayname=...)))

(真实用户没有对象类“计算机”).

我正在使用PHP ldaP实现,因此使用ldap_seArch()方法.

发现了“不等于”语法,例如这里:http://technet.microsoft.com/en-us/library/aa996205%28EXCHG.65%29.aspx或者这里:http://msdn.microsoft.com/en-us/library/aa746475%28v=vs.85%29.aspx

也许我可以尝试过滤DN中的用户(!CN = Computers),但首先我想过滤(!objectclass = computer),因为它对我来说更合乎逻辑.

objectclass!=“computer”表达式的正确语法是什么

与您提供的 first link相反,(!objectclass = computer)不是有效的过滤器表达式.它应该是(!(objectclass = computer)).请参阅Rfc 2254:

所以你的过滤器应该是

(&(!(objectclass=computer))(objectclass=user)(|(memberOf=...)(memberOf=...)...)(|(userprincipalname=...)(displayname=...)))

脚本宝典总结

以上是脚本宝典为你收集整理的php – LDAP / AD过滤器 – “objectclass not equal”不起作用全部内容,希望文章能够帮你解决php – LDAP / AD过滤器 – “objectclass not equal”不起作用所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。