Получите количество пользователей в конкретном подразделении и его подразделении OU.

Я ищу PowerShell script, который получит меня:

  • Имя OU's
  • Количество пользователей AD в каждом OU.

Я нашел это:

(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.

2 ответа

Я предлагаю вам прийти к этому под другим углом. Каждый пользователь объявления содержит информацию о своем родительском контейнере. Поскольку вы уже возвращаете всех пользователей. Давайте используем это для определения счетчиков. Предостережение заключается в том, что если у вас есть пользовательский 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
 }
}


Запуск в python - get-aduser покажет вам всех пользователей

(get-aduser -filter *).count посчитает этих пользователей для вас. Это все пользователи активны или отключены.

licensed under cc by-sa 3.0 with attribution.