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"

    Leave A Reply