LDAP 比较属性

发布于 2024-11-08 13:15:37 字数 164 浏览 0 评论 0原文

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

(!(cn=sAMAccountName))

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

此致 托马斯

I would like to filter for all LDAP objects where the CN does not equal the sAMAccountName. Therefore I wrote the following query, which unfortunately neither works nor seems to be RFC compliant:

(!(cn=sAMAccountName))

Does anybody know how to acheive the desired functionality?

Best regards
Thomas

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

執念 2024-11-15 13:15:37

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

LDAP filters do not allow using value of another attribute for filter comparison. You have to fetch the entry and compare both values.

别低头,皇冠会掉 2024-11-15 13:15:37

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

使用此过滤器将导致搜索响应中返回所有存在 cn 属性值的条目,并且 cn 的匹配规则返回 false 为不区分大小写的值 samaccountname(假设 cn 属性匹配规则尚未从已发布的标准中更改)。结果将受到以下因素的影响:

  • 服务器时间限制
  • 服务器大小限制
  • 服务器访问控制

也许您打算使用

  • cn=value-of-samaccount-name

(!(cn=sAMAccountName)) is "RFC compliant", because the right-hand side of the assertion is taken to be a value of the cn attribute.

Using this filter will result in all entries being returned in a search response where value of the cn attribute is present, and the matching rule for cn returns false for the case-insensitive value samaccountname (assuming the cn attribute matching rule has not been changed from the published standard). The results will be subject to:

  • server time limit
  • server size limit
  • server access controls

Perhaps you meant to use

  • cn=value-of-samaccount-name
尘曦 2024-11-15 13:15:37

如果您在 Windows 环境中,则可以使用 PowerShell 表达式语言来执行此操作。

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

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

If you're in a Windows environment, you can use PowerShell Expression Language for this.

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

This is a fairly expensive query because it returns every single user object for PowerShell to do processing on, but it does work.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文