我想查找包含在两个 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://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' }