Active directory 区分名称EndsWith的LDAP筛选器?

Active directory 区分名称EndsWith的LDAP筛选器?,active-directory,ldap-query,Active Directory,Ldap Query,我正在尝试构建一个LDAP筛选器,其工作原理类似于以下简单的PowerShell命令: Get-ADUser -Filter * -Properties Department -SearchBase "OU=Company Users,OU=WorkPlace,OU=contoso,DC=fr" | ` Where{ (($_.SamAccountName -like "user1") -OR ($_.SamAccountName -like &

我正在尝试构建一个LDAP筛选器,其工作原理类似于以下简单的PowerShell命令:

Get-ADUser -Filter * -Properties Department -SearchBase "OU=Company Users,OU=WorkPlace,OU=contoso,DC=fr" | `
    Where{  (($_.SamAccountName -like "user1") -OR ($_.SamAccountName -like "user2") -OR ($_.SamAccountName -eq "user3")) -OR `
            ($_.Department -like "Dpt1/*") -OR `
            ($_.Department -like "Dpt2/*") -OR `
            ($_.Department -like "*/Svc3/*") -OR `
            ($_.SamAccountName -in (Get-ADGroupMember -Identity "Group1" -Recursive).SamAccountName)
         }  
我试图阅读一些示例来制作此过滤器,但我被卡住了(dn错误):

如何编写此筛选器以列出具有以
OU=Company users、OU=WorkPlace、OU=contoso、DC=fr
结尾的区分名称值的用户,或在此OU和subOU中的用户

如果它帮助我需要筛选的用户:

  • 需要位于指定的OU或SUBOU中
  • 需要匹配组的某些SAMAccountName或部门或嵌套成员身份
  • 需要填写一些属性(部门、员工编号等)

Active Directory不允许对任何可分辨名称属性使用通配符(
可分辨名称
成员
管理器
等)


如果您需要在OU和子OU中查找对象,则将该OU设置为搜索库,我看到您已经在这样做:
-SearchBase“OU=Company Users,OU=WorkPlace,OU=contoso,DC=fr”

谢谢@gabriel luci。事实上,我知道如何在Powershell中实现这一点。在ldap查询中有什么方法可以这样做吗?ldap是查询AD的唯一方法。PowerShell将该命令转换为ldap查询。LDAP查询的一部分是“搜索基”,有时称为“搜索根”或“基DN”。总有办法设置该值。您使用什么进行LDAP查询?在我的例子中,一些私有的旧应用程序需要在AD中检索用户。我认为不可能设置一些选项。我更喜欢让他们使用baseDN(即rootDSE),以防止在有人决定重命名某些OU(在我的后面)时出错。为了实现这一点,我需要提供和LDAP筛选器,以实现这一点^^在筛选器中无法实现这一点。仅有两种方法是设置搜索根目录,或在返回结果后在代码中过滤结果。
(&(distinguishedName=*OU=Company Users,OU=WorkPlace,OU=contoso,DC=fr)
(!(employeeNumber=\00))(!(department=\00))
(|(department=Dpt1/*)(department=Dpt2/*)(department=*/Svc3/*)
(sAMAccountName=user1)
(sAMAccountName=user2)
(sAMAccountName=user3))
(objectCategory=person)
(sAMAccountType=805306368))