【问题标题】:Get-ADUser return a single account from all OU's and Sub OU'sGet-ADUser 从所有 OU 和子 OU 返回单个帐户
【发布时间】:2021-07-23 11:03:48
【问题描述】:

我的 Active Directory 服务器中有以下示例 OU 结构


我在 OU1、OU2 等的“用户”OU 中都有用户帐户。 用户帐户具有静态前缀,例如OU1 将拥有 OU1user1、OU1user2、OU1user3 等用户帐户。同样,OU2 和 OU3 将拥有 OU2user2,OU2user2,OU2user3 & OU3user1,OU3user2,OU3user3 等使用帐户

现在我想要什么?

我只想要 RootOU 下所有 OU 的单个用户(可以是任何用户)。目前我正在使用以下命令并返回 RootOU 的子 OU 中的所有用户。

$ou = "OU=RootOU,DC=mydomain,DC=com"
$myUsers = Get-ADUser -Filter *  -SearchBase $ou -SearchScope 2

【问题讨论】:

  • 这听起来不合逻辑!您的问题应该是您希望在 OU 中搜索哪个特定用户(基于名称、sAMAccountName 和其他参数)?
  • 各个OU有近50000个用户,所以不能是特定用户。我试图从每个 OU 中让一个用户提取命名模式,然后用它来做其他事情。我这样做是为了优化一个已经在工作的脚本,但它不必要地运行了比所需时间更长的时间,因为它最终处理了所有不需要的帐户。

标签: active-directory active-directory-group activedirectorymembership


【解决方案1】:

你可以做类似的事情

$myUsers = Get-ADOrganizationalUnit -Filter "Name -like '*users*'" -SearchBase $ou -SearchScope 2 | ForEach-Object {
    Get-ADUser -Filter * | Select-Object -First 1
}

【讨论】:

  • 完美。谢谢你的主意。我必须做一些细微的改变,否则它会进入一个循环。 $allusers = @(foreach ($userou in $ou.distinguishedname) { Get-ADUser -Filter * -SearchBase $userou | Select-Object -First 1 } )
猜你喜欢
  • 2013-04-28
  • 2022-01-10
  • 2018-04-10
  • 2015-12-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多