Active Directory userAccount控制过滤器中的多个值

时间:2019-02-19 20:19:43

标签: filter active-directory

此过滤器有什么问题?

(&(objectClass=user)(&(userAccountControl=512)(userAccountControl=514))(|(sfrecordtype=10)(sfrecordtype=30)(sfrecordtype=32)(sfrecordtype=35)))

仅使用一个userAccountControl值就可以正常工作。如何为userAccountControl创建同时具有512和514的有效过滤器?

我将不胜感激。

2 个答案:

答案 0 :(得分:1)

  

此过滤器有什么问题?

好吧,您的userAccountControl不能同时为512 514-这就是您的过滤器所要求的。 绝不会。...

您想将值512和514与 OR 条件-任一 userAccountControl = 512 OR userAccountControl = 514组合-试试这个:

(&
    (objectClass=user)
    (|(userAccountControl=512)(userAccountControl=514))
    (|(sfrecordtype=10)(sfrecordtype=30)(sfrecordtype=32)(sfrecordtype=35))
)

答案 1 :(得分:0)

您可能不想搜索这些特定值。您可能想要检查感兴趣的特定位。原因是搜索将不包括设置了其他UAC标志的任何用户,这是非常现实的可能性。

您可以使用按位或搜索来做到这一点:

bitmask = 512 | 514; // technically just 514 works

...(UserAccountControl:1.2.840.113556.1.4.804:=bitmask)...

这将返回与‭001000000010‬掩码匹配的所有用户。