Attributes LDAP比较属性

Attributes LDAP比较属性,attributes,comparison,ldap,Attributes,Comparison,Ldap,我想筛选CN不等于sAMAccountName的所有LDAP对象。因此,我编写了以下查询,不幸的是,该查询既不起作用,也似乎不符合RFC: (!(cn=sAMAccountName)) 有人知道如何实现所需的功能吗 致意 Thomas(!(cn=sAMAccountName))是“RFC兼容的”,因为断言的右侧被视为cn属性的值 使用此筛选器将导致在搜索响应中返回所有条目,其中cn属性的值存在,cn的匹配规则将false返回不区分大小写的值samaccountname(假设cn属性匹配规则未从发

我想筛选CN不等于sAMAccountName的所有LDAP对象。因此,我编写了以下查询,不幸的是,该查询既不起作用,也似乎不符合RFC:

(!(cn=sAMAccountName))

有人知道如何实现所需的功能吗

致意 Thomas

(!(cn=sAMAccountName))
是“RFC兼容的”,因为断言的右侧被视为
cn
属性的值

使用此筛选器将导致在搜索响应中返回所有条目,其中
cn
属性的值存在,
cn
的匹配规则将
false
返回不区分大小写的值
samaccountname
(假设
cn
属性匹配规则未从发布的标准中更改)。结果将取决于:

  • 服务器时间限制
  • 服务器大小限制
  • 服务器访问控制
也许你想用

  • cn=samaccount名称的值

如果您在Windows环境中,可以为此使用PowerShell表达式语言

Get-ADUser -Filter * -Server my.domain.name -Properties CN |
  Where-Object {$_.CN -ne $_.sAMAccountName}

这是一个相当昂贵的查询,因为它返回PowerShell要处理的每个用户对象,但确实有效。

LDAP筛选器不允许使用另一个属性的值进行筛选器比较。您必须获取条目并比较两个值。

这个问题似乎没有意义。您真的想要吗要检索除该记录之外的所有记录?您的实际需求是什么?如前所述,我想检索公共名称不等于sAMAccountName的所有对象(在我的情况下是用户)。我认为查询应该是(cn!=sAMAccountName),也可以写为(!(cn=sAMAccountName))…但显然,我不是LDAP专家:)不,它只返回“cn”属性没有值“sAMAccountName”作为文本的所有记录。我认为你不能为你想要的东西编写一个过滤器。只有LHS作为属性名。请看。