web-dev-qa-db-ja.com

特定のOUとそのサブOUのユーザー数を取得します

私を取得する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が存在します。

7
TheJanitor

別の角度からこれに来ることを提案します。各広告ユーザーには、その親コン​​テナに関する情報が含まれています。すでにすべてのユーザーを返しているため。それを使用してカウントを決定します。ユーザーレス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
    }
}
3
Matt

特定のOUのユーザー数を取得するPowerShellコマンドを次に示します。

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

OUの数が少ない場合、簡単な方法は、各OUですべてを選択し、プロパティをヒットすることです。これにより、そのOUの合計数が表示されます。カウントを収集した後、それぞれを一緒に追加できます。

0