2015-09-09 68 views
7

我正在尋找一個PowerShell腳本,將讓我:獲取用戶的數量在一個特定的OU及其子OU的

  1. OU's
  2. AD數量的計數名稱每個OU中的用戶。

我發現這一點:

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

這不正是我想要的東西,但我會在每個OU名輸入。問題是我們有100 + OU's。具體的OU我想運行這個是contoso.com\cmsg\userscmsg\users是100 + OU's駐留的地方。

回答

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輸出。在python

$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

運行 - GET-ADUser便有將顯示所有用戶

(get-aduser -filter *).count將依靠這些用戶給你的。這是所有用戶活躍或禁用。

+0

這與OP的問題無關。另外,你爲什麼指Python? '(Get-ADUser -Filter *)。Count'在PowerShell中工作。 – jpaugh

相關問題