我正在使用此过滤器运行ldap_list:
"(&(givenname=*)(objectClass=User)(!department=Executive))"
我在PHP日志中得到零结果和此警告:
ldap_get_entries():提供的参数不是有效的ldap结果资源...
如果我删除部门的NOT运算符并运行它:
"(&(givenname=*)(objectClass=User)(department=Executive))"
我得到了我期待的确切结果,没有任何警告。由于我使用后一个过滤器获得了良好的结果,我只能假设我的ldap连接,base_DN和属性是正确的。我通过管理控制台在Active Directory用户和计算机中运行了两个过滤器,并且两者都运行良好,因此我可以假设过滤器是正确的。只是为了笑容我尝试了ldap_search而不是ldap_list并得到了相同的结果。有什么想法吗?
哦,我在IIS 7.5上运行PHP 5.2.14。
由于
答案 0 :(得分:3)
您需要将操作符移到括号外
(!(department=Executive))