如何在跳过文件夹时使用powershell在AD中搜索用户



当前使用的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

最新更新