LDAP Active Directory 查找来自两个 OU 的所有用户

LDAP Active Directory 查找来自两个 OU 的所有用户

我想查找包含在两个 OU 中但不包含在其他 OU 中的所有用户。基本上,这与https://ldapwiki.com/wiki/ExtensibleMatch#section-ExtensibleMatch-SearchWithinTwoContainers,但在 Active Directory 中。该页面显示“Microsoft Active Directory 不支持此功能,仅支持:Microsoft Active Directory 可扩展匹配规则”。

我想要从 OU 管理和人员中查找所有用户,如下所示:

dc=com
    dc=willeke
        ou=Administration
            cn=OneInetOrgPerson
            ....
        ou=People
            cn=TwoInetOrgPerson
            ....
            ou=butler
               cn=moreInetOrgPerson
               ....
        ou=Groups
            cn=ThreeInetOrgPerson
            ....
        ou=IDM
            cn=FourInetOrgPerson
            ....
        ou=Sales
            cn=FiveInetOrgPerson
            ....

我不明白如何使用 Active Directory 创建相同的功能。使用 AD 是否可行?

答案1

是的,您可以使用 PowerShell 执行此操作。

Import-Module Active Directory
$OUs = 'OU=Administration,DC=willeke,DC=com','OU=People 2,DC=willeke,DC=com'
$OUs | ForEach { Get-ADUser -Filter * -SearchBase $_ }

https://social.technet.microsoft.com/Forums/office/en-US/8354b35a-e4f8-428b-918f-a10ab3efa5d0/getaduser-effective-multiou-search?forum=winserverpowershell

https://www.experts-exchange.com/questions/28788079/Get-Users-from-multiple-OUs-with-Poweshell.html

答案2

正如 user5870571 指出的那样,您可以执行两个单独的查询并合并结果。

或者,您可以将搜索范围更改为更高级别的容器,并在客户端过滤结果。

Get-ADUser -Filter * -SearchBase 'DC=willeke,DC=com' | 
    Where-Object { $_.distinguishedName -like '*,OU=Administration,DC=willeke,DC=com' -or
                   $_.distinguishedName -like '*,OU=People,DC=willeke,DC=com' }

相关内容