Powershell räknar konton per OU i AD

Dagens erfarenhet kanske inte ser mycket ut för världen.. Men det hjälpa mig mycket idag.
Jag behövde räkna antalet användare och datorer som fanns i samtliga AD’t OU’n. Verktyget för detta blev givetvis PowerShell. Vi börjar med att backa lite och går igenom lite grunder.

Med PS CmdLet Get-ADOrganizationalUnit kan man enkelt lista vilka OU’n man har i ett AD. Kommandot för detta kan se ut enligt följande:

1
Get-ADOrganizationalUnit -Filter *

Och med PS CmdLet Get-ADUser & Get-ADComputer kan vi hämta ut information om användare och datorer

1
2
Get-ADUser -Filter * 
Get-ADComputer -Filter *

Men nu skulle jag räkna hur många datorer och/eller användare som totalt fanns i AD’s alla OU. Först skulle jag bara kolla ett OU. Vilket enkelt löstes med att hämta antalet för just detta OU. T.ex:

1
(Get-ADUser -SearchBase "OU=SWEDEN,OU=COMPANY,DC=COMPANY,DC=COM" -Filter *).count

Sedan blev det till att hämta antalet användare och datorer för samtliga OU
Här är lösningen:

1
2
3
4
5
#Hämta antalet användare i alla OU
Get-ADOrganizationalUnit -Filter * | % {Write-Host OU=$_ UserCount=$((Get-ADUser -SearchBase $_ -Filter *).Count)}
 
#Hämta antalet datorer i alla OU
Get-ADOrganizationalUnit -Filter * | % {Write-Host OU=$_ ComputerCount=$((Get-ADComputer -SearchBase $_ -Filter *).Count)}
This entry was posted in Powershell. Bookmark the permalink.

Kommentera

E-postadressen publiceras inte. Obligatoriska fält är märkta *

*


+ 9 = femton

26 418 Spam Comments Blocked so far by Spam Free Wordpress

Följande HTML-taggar och attribut är tillåtna: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>