当前使用的powershell脚本格式为:
Get-ADUser -Filter * -Properties EmailAddress, DisplayName -SearchBase "OU=USERS, OU=Site, OU=$_, DC=domain" -Server ServerName | Select DisplayNAme, EmailAddress
我的问题是OU用户和站点被埋在不同的文件夹中,我不知道如何让powershell脚本查看(OU=$_)
以上的所有文件夹。使用OU=*
也不能工作(语法错误)。
-SearchBase
参数不允许通配符,如果我理解正确,您正在寻找所有具有OU=USERS, OU=Site
作为子OU的父OU,在这种情况下,您可以首先过滤所有具有名称的OUUsers
然后再次过滤那些distincishedname的ou包含OU=USERS, OU=Site
,最后将这些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