2015-09-09 5 views
7

Sto cercando uno script PowerShell che otterrà me:Ottenere un conteggio di utenti in una specifica unità organizzativa e la sua sub UO

  1. Il nome del OU's
  2. Il conteggio del numero di AD utenti in ogni OU.

Ho trovato questo:

(Get-ADUser -Filter * -SearchBase “ou=Users,ou=A1,dc=contoso,dc=com”).count 

Questo fa esattamente quello che voglio, ma avrei dovuto digitare ogni nome OU. Il problema è che abbiamo 100+ OU's. Lo specifico OU in cui sto eseguendo questa operazione è contoso.com\cmsg\users sotto lo cmsg\users dove risiedono gli oltre 100 OU's.

risposta

3

Vi propongo di venire da un'altra angolazione. Ogni utente dell'annuncio contiene informazioni sul suo contenitore genitore. Dato che stai già restituendo tutti gli utenti. Usiamo questo per determinare i conteggi. L'avvertenza è che se si dispone di OU senza utente, non verranno visualizzati nei risultati.

Get-ADUser -Filter * -Properties CN | 
    Select-Object @{Label='ParentContainer';Expression={$_.Distinguishedname -replace "CN=$($_.cn),"}} | 
    Group-Object -Property ParentContainer | 
    Select-Object Name,Count 

Ovviamente si può ancora usare -SearchBase per restringere il campo di applicazione Get-ADUser.

Se questo non è ciò che si desidera la soluzione successiva richiederebbe l'output da 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 
    } 
} 
-2

Run in python - GET-ADUser vi mostrerà tutti gli utenti

(get-aduser -filter *).count conterà quegli utenti per voi. Questo è tutti gli utenti attivi o disabilitati.

+0

Questo non è correlato alla domanda dell'OP. Inoltre, perché ti riferisci a Python? '(Get-ADUser -Filter *). Count' funziona in PowerShell. – jpaugh