
Im Rahmen einer Bereinigungsanforderung einer Active Directory-Domäne musste ich mir ein Skript erstellen, welches mir die Anzahl der Objekte aufgeteilt nach Typ darstellt:
- Userobjekte
- Gruppenobjekte
- Computerobjekte
Aus diesem Grund ist das folgende Skript entstanden:
$results = Get-ADOrganizationalUnit -Properties CanonicalName,description -Filter * |
Sort-Object CanonicalName |
ForEach-Object {
[pscustomobject]@{
Name = Split-Path $_.CanonicalName -Leaf
CanonicalName = $_.CanonicalName
UserCount = @(Get-AdUser -Filter * -SearchBase $_.DistinguishedName -SearchScope OneLevel).Count
GroupCount = @(Get-AdGroup -Filter * -SearchBase $_.DistinguishedName -SearchScope OneLevel).Count
ComputerCount = @(Get-AdComputer -Filter * -SearchBase $_.DistinguishedName -SearchScope OneLevel).Count
}
}
$results | Select-Object canonicalname,Description,usercount,groupcount,computercount,name | export-csv C:\Temp\OUStructure.csv -Encoding UTF8 -Delimiter ";" -NoTypeInformation