在extensionattribute1
个用户中有以下3个值:
此LDAP过滤器仅提取在extensionattribute1中具有第3个值的用户,
extensionattribute1 >= *Noon*12
AD执行词法搜索,它应该获取具有上述所有3个值的所有用户。
我们正在努力寻找导致此Active Directory行为的原因。请帮忙。
答案 0 :(得分:0)
*
字符是通配符。因此,如果您要将其用作文字(作为值中的实际*
字符),则应对其进行转义:
extensionattribute1 >= \2ANoon\2A12
但是,我认为这不是您的问题。
在我能找到的任何文档中,都没有明确围绕“词汇语法”对AD意味着什么的规则。通常,它表示“字母顺序”。这对于文本来说很棒,但是对于符号的含义却完全不清楚。绝对不会总是使用它们在Unicode table中的位置。
我自己做了一些测试。正如您从Unicode表中的位置所期望的那样,它的确比逗号(.
)高一个句点(,
)。但是连字号(介于表中的句点和逗号之间)的排名似乎非常低。它总是少于一切。我可以搜索小于空格字符(<=\20
)且与连字符匹配的值。
因此,简短的答案是您无法做您想做的事情。使用>=
不会给您希望的结果。
但是,如果您只想查找这三个值,则可以使用“或”比较来查找所有这三个值:
(|(extensionattribute1=\2ANoon\2A12)(extensionattribute1=-1000)(extensionattribute1=-7))