Website-Icon .: blog cscholz.io :.

Powershell: Gruppenmitglieder auslesen

Nachdem ich mal wieder vor der Aufgabe stand, eine Auflistung von Gruppenmitglieder aus dem AD zu extrahieren, welche auch nocht die Gruppennamen enthält, in der die Benutzer Mitglied sind, nachfolgend ein Beispiel inkl. Fortschrittsbalken für ungeduldige Leute 😉

Der DomainController ist in dem Fall dc0001 und es werden alle AD-Gruppen ausgelesen, die mit "Group1…" anfangen.
Das Ergebnis wir anschließend in eine CSV-Datei exportiert, damit diese weiterverarbeitet werden kann.

$server="dc0001"

$Reports=@()
$Groups=Get-ADGroup -Server $Server -Filter * | where {$_.DistinguishedName -like "CN=Group1*"}
$ADGoups = $Groups |Measure-Object
$GroupsToCheck=$ADGoups.Count
$i=1
$Groups| foreach{
   $GroupName=$_.Name

   Write-Progress -Activity "Expanding groups ($i/$GroupsToCheck)" -status "progressing $GroupName" -percentComplete ($i / $GroupsToCheck * 100)
   $Report=$_| Get-ADGroupMember -recursiv | Get-ADUser -Properties *| select @{Name='Group'; Expression={[String]::join(";", $GroupName)}}, SamAccountName,GivenName,Surname,DistinguishedName,EmailAddress
   $Reports=$Reports+$Report
   $i++
}
$Reports| Export-CSV -Delimiter ";" -Path "c:groups.csv"
Die mobile Version verlassen