获取特定OU及其子OU中的用户数

问题描述 投票:7回答:3

我正在寻找一个能让我获得的PowerShell脚本:

  1. OU's的名字
  2. 每个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所在的地方。

powershell active-directory
3个回答
3
投票

我建议你从另一个角度来看这个。每个广告用户都包含有关其父容器的信息。由于您已经返回所有用户。让我们用它来确定计数。需要注意的是,如果你有无用户的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
    }
}

1
投票

以下是获取特定OU中用户数的PowerShell命令。

(Get-ADObject -Filter * -SearchBase "path of your OU").Count

-2
投票

在python中运行 - get-aduser将向您显示所有用户

(get-aduser -filter *).count将为您计算这些用户。这是所有活动或禁用的用户。

© www.soinside.com 2019 - 2024. All rights reserved.