【发布时间】:2017-10-20 14:20:36
【问题描述】:
我正在 PowerShell 中寻找一种方法来列出所有包含用户的 OU。
我用Get-ADUser 或Get-ADOrganizationalUnit 尝试了一些东西,但它并没有真正起作用。
【问题讨论】:
-
你尝试了什么确切。这些将是您需要使用的 2 个 cmdlet。你想如何处理递归结果?
标签: powershell active-directory
我正在 PowerShell 中寻找一种方法来列出所有包含用户的 OU。
我用Get-ADUser 或Get-ADOrganizationalUnit 尝试了一些东西,但它并没有真正起作用。
【问题讨论】:
标签: powershell active-directory
一种方法是获取所有 OU,并通过-SearchBase 检查它们是否包含任何用户。使用Where-Object 子句过滤掉它们
Get-ADOrganizationalUnit -Filter * |
Where-Object {(Get-ADUser -SearchBase $_.DistinguishedName -Filter *).Count -gt 0} |
Select-Object -ExpandProperty DistinguishedName
【讨论】:
只需从每个用户对象中提取 OU。然后找到唯一值。
Get-ADUser -Filter * |
ForEach-Object {$_.DistinguishedName -replace '(^.*?)(OU=.*)','$2'} |
Sort-Object -Unique
注意:这假设您没有将用户对象存储在容器中而不是 OU 中
【讨论】: