0

大家好,大家对 Powershell 还是很陌生,以前从未使用过 Ldap -filter,所以我有一个问题。是否可以使用一个 Ldap 过滤器从多个 Ou 中获取 AD 用户?

OU=D5,OU=Standard,OU=User,OU=1,DC=test,DC=for-me,DC=nl
OU=D3,OU=Standard,OU=User,OU=1,DC=test,DC=for-me,DC=nl
OU=G2,OU=General,OU=User,OU=1,DC=test,DC=for-me,DC=nl
OU=C6,OU=Expired,OU=User,OU=1,DC=test,DC=for-me,DC=nl

对不起,我什至没有代码示例,但我尝试过的任何东西都没有接近我想要的。我愿意接受小费、提示、想法等。已经谢谢了。

4

2 回答 2

1

您不能使 OU 成为 LDAP 过滤器的一部分。但是您可以将 OU 作为搜索的基础并发出多个搜索。

# an array of OUs, this could also be achieved with e.g. $OUs = Get-Content 'some_file.txt'
$OUs = @(
    "OU=D5,OU=Standard,OU=User,OU=1,DC=test,DC=for-me,DC=nl"
    "OU=D3,OU=Standard,OU=User,OU=1,DC=test,DC=for-me,DC=nl"
    "OU=G2,OU=General,OU=User,OU=1,DC=test,DC=for-me,DC=nl"
    "OU=C6,OU=Expired,OU=User,OU=1,DC=test,DC=for-me,DC=nl"
)

foreach ($ou in $OUs) {
    Get-ADUser -SearchBase $ou
}
于 2019-10-25T12:23:52.157 回答
0

好吧,它不是 LDAP 查询,在非常大的环境中可能很可疑,但通常我建议使用 Powershell 的过滤器选项,如下所示:

Get-ADUser -Filter  * | Where-Object { $_.DistinguishedName.split(",",2)[1] -in 
    "OU=D5,OU=Standard,OU=User,OU=1,DC=test,DC=for-me,DC=nl",
    "OU=D3,OU=Standard,OU=User,OU=1,DC=test,DC=for-me,DC=nl",
    "OU=G2,OU=General,OU=User,OU=1,DC=test,DC=for-me,DC=nl",
    "OU=C6,OU=Expired,OU=User,OU=1,DC=test,DC=for-me,DC=nl"
}
于 2019-10-25T12:10:38.797 回答