我正在寻找一个可以让我明白的PowerShell脚本:
OU's
的名称OU
中的AD用户数。 我发现了这一点:
(Get-ADUser -Filter * -SearchBase “ou=Users,ou=A1,dc=contoso,dc=com”).count
这正是我想要的,但是我必须输入每个
OU
名称。问题是我们有100多个OU's
。我要在其中运行的特定OU
是contoso.com\cmsg\users
下的cmsg\users
,即100多个OU's
所在的位置。 最佳答案
我建议您从另一个角度出发。每个广告用户都包含有关其父容器的信息。由于您已经返回了所有用户。让我们用它来确定计数。请注意,如果您拥有较少用户的OU,它们将不会显示在结果中。
Get-ADUser -Filter * -Properties CN |
Select-Object @{Label='ParentContainer';Expression={$_.Distinguishedname -replace "CN=$($_.cn),"}} |
Group-Object -Property ParentContainer |
Select-Object Name,Count
当然,您仍然可以使用
-SearchBase
来缩小Get-ADUser
的范围。如果这不是您想要的,则下一个解决方案将需要Get-ADOrganizationalUnit的输出。
$ous = Get-ADOrganizationalUnit -Filter * -SearchBase "ou=Users,ou=CMSG,dc=contoso,dc=com" | Select-Object -ExpandProperty DistinguishedName
$ous | ForEach-Object{
[psobject][ordered]@{
OU = $_
Count = (Get-ADUser -Filter * -SearchBase "$_").count
}
}
关于powershell - 获取特定OU及其子OU的用户数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32484212/