【问题标题】:LDAP Query that exclude computers排除计算机的 LDAP 查询
【发布时间】:2023-04-09 14:20:01
【问题描述】:

我从未做过任何 DAP/AD 管理或查询。现在我有一个任务,我需要获取我们公司广告中的所有用户;但不断在查询结果中获取计算机。我使用 objectClass=user 并且仍然获得 AD 中的所有计算机。我还缺少什么?有没有办法说“objectClass=user 而不是 objectClass=Computer”? 谢谢!

【问题讨论】:

  • 对象可以有多个objectClass。这可能是计算机出现在您原本有效的过滤器中的原因。

标签: ldap ldap-query


【解决方案1】:

试试这个过滤器:(&(objectClass=user)(!(objectClass=computer)))

【讨论】:

  • 嗯,LDAP 语法并不完全是人类友好的。 :) 拥有一个帮助编写过滤器的工具很方便。我使用Apache Directory Studio,非常好。
  • 不开玩笑!我经常写 SQL 查询,所以对逻辑很熟悉;但至少可以说语法非常有趣。感谢您提供有关 Apache 工具的提示,非常有帮助!
  • @zagyi 为什么 (&(objectClass=person)(!(objectClass=computer))) 在 OpenLdap 上没有返回任何结果?顺便说一句, (&(objectClass=person)) 确实返回现有用户,并且 (&(objectClass=computer)) 不返回任何值(这意味着我没有任何人也是计算机。
【解决方案2】:

如果你在 2019 年来到这里,那么上面的答案现在已经无关紧要了。我一直在使用下面的,它完美地工作,使用运算符

Get-ADObject -IncludeDeletedObjects -Filter {(ObjectClass -eq "user") 
    -and (-not (objectClass -eq "computer")) -and (Deleted -eq $true)}

【讨论】:

  • 不管你是在 2019 年还是任何一年——问题是关于使用 LDAP,而你的答案是使用与手头问题无关的 Powershell AD 模块。原始答案仍然有效并适用。
猜你喜欢
  • 1970-01-01
  • 2023-02-22
  • 1970-01-01
  • 2013-02-17
  • 1970-01-01
  • 1970-01-01
  • 2012-05-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多