当前使用的 powershell 脚本采用以下格式:
Get-ADUser -Filter * -Properties EmailAddress, DisplayName -SearchBase "OU=USERS, OU=Site, OU=$_, DC=domain" -Server ServerName | Select DisplayNAme, EmailAddress
我的问题是 OU 用户和站点被埋在上一层的不同文件夹中,我无法弄清楚如何使 powershell 脚本通过 (OU=$_)
上面的所有文件夹进行查看。使用 OU=*
也不起作用(语法错误)。
回答1
-SearchBase
参数不允许使用通配符,如果我理解正确,您正在寻找所有将 OU=USERS, OU=Site
作为子 OU 的父 OU,在这种情况下,您可以先过滤所有名称为 Users
的 OU,然后过滤再次针对那些其 DistinguishedName 包含 OU=USERS, OU=Site
的 OU,最后将这些 OU 提供给 Get-ADUser -SearchBase
:
(Get-ADOrganizationalUnit -LDAPFilter "(name=users)").DistinguishedName | ForEach-Object {
if($_ -notlike "OU=USERS, OU=Site*") { return }
Get-ADUser -Filter * -Properties EmailAddress, DisplayName -SearchBase $_ -Server ServerName
} | Select DisplayName, EmailAddress