powershell - 如何在跳过文件夹时使用 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=* 也不起作用(语法错误)。

回答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

相似文章

r - 循环以从特定行创建新的计数列

我想在我的数据集中创建一个新列。我想从物种Stegastesplanifrons的full_name列中挑选计数,并创建一个带有计数的新列(包括计数为0的横断面)。我使用了这段代码:Fish1$Ste...