Jump to content

Get-ADGroupMember - Size Limit


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Moin zusammen,

ich habe ein Problem mit der Abfrage Get-ADGroupMember -> Size Limit exceeded -> Die Gruppen können > 5000 Mitglieder haben.

 

Zur Situation, ich habe in einer OU diverse Gruppen in Domäne 1.

Diese Domäne 1 ist quasi die übergeordnete Organisation für die Konfiguration.

Je Gruppe sind aus 7 Standorten (ebenfalls eigene Domänen mit Vertrauenseinstellungen verbunden) gleichnamige Gruppen zugewiesen und innerhalb dieser Gruppen liegen an den Standorten direkt oder indirekt die User.

 

Das Problem: Ich habe eine einfache Abfrage im Skript an zwei Stellen und hier macht mit Get-ADGroup ärger.

$winUserList = Get-ADGroup -identity "Gruppenname" -properties Members -recursive # | Get-ADUser -Properties *

 

Beispiel - die Abfrage wird nur auf die Gruppe in der Konfigurationsdomäne gestartet, hier können die Mitarbeiter effektiv durch diverse Gruppenhierachien verteilt liegen.


Testgruppe@Hauptdomäne

     ->Testgruppe@Standort1

                 ->Mitarbeitergruppe@Standort1

                              ->User1
                              ->UserN...

     ->Testgruppe@Standort2

                  ->Mitarbeitergruppe@Standort2

                               -User10

                                -UserN...

                   ->Buchhaltunggruppe@Standort2

                                 -User20

                                  -Usern..

 

Als Alternative hatte ich nun - das stimmt allerdings auch noch nicht, da hier Benutzer mehrfach vorhanden sein können.

$grp = Get-ADGroup "Gruppenname" -properties Members
$winuserList= $grp.members |Get-ADGroupMember -Recursive |Get-ADUser -Properties userprincipalname, givenname, surname, EmailAddress

Allerdings besteht das Problem ja weiterhin, wenn die Untergruppe > 5000User hätte

 

Sollte ich auf die QAD Addins ausweichen ?- Laut Inet kann man das Limit hier festsetzen. Allerdings setze ich ungern auf fremde Lösungen.

 

VG Admin

bearbeitet von PowerShellAdmin
Link zu diesem Kommentar

Hallo Martin,
mit Get-ADGroup kann ich allerdings keine rekursive Verschachtelung abbilden.
Allerdings habe ich nun konzepttechnisch festgestellt, dass dies überhaupt nicht notwendig ist und ich dies über verschachtelte Schleifen doch abbilden kann (meine Beschreibung obig von der Verschachtelung stimmt so also nicht).
Hatte mich jetzt sogar mit QAD an eine Lösung getastet, werde aber womöglich doch auf Get-ADGroup. Teste das erstmal mit den QAD Queries und anschließend mit den Get-ADGroup.

 

Technisch liegt die Begrenzung wohl an der Konfiguration der DC - man kann wohl das Limit erhöhen (für alle DC der jeder betroffenen Organisation notwendig).

http://technet.microsoft.com/en-us/library/dd391908%28WS.10%29.aspx

Das ist allerdings ausgeschlossen ....

 

Bis Dato habe ich immer auf QAD CMDlets verzichtet, hoffe das klappt jetzt auch noch - Immerhin sind diese von der Performance schlecht und zumeist unnötige 3. Tools :/.

Gerade Performance ist ein wichtiger Aspekt, da man umfangreiche AD Queries je nach Technik 20 oder auch nur 30 Sekunden dauern können - mit dem selben Ergebnis ;)

 

 

Kleines Feedback, Get-ADGroup ist leider nicht geeignet.
Ich arbeite mit Domain Local Gruppen, darunter liegen Globale Sicherheitsgruppen in den jeweiligen Organisationen. On the fly kann man das so leider nicht umsetzen. Ich nehme an das geht auch, soweit man je Get-ADGroup die DC definiert.

 

Ich bin gespannt wie sich die QAD Lösung mit den Schleifen am Ende schlägt,  mein Verdacht ist, dass die zusätzlichen Abfragen kaum ins Gewichtfallen, da die eigentliche Verzögerung bei der AD Query ist.

bearbeitet von PowerShellAdmin
Link zu diesem Kommentar

So ein kleines Feedback, ich hatte das Ganze zwischenzeitlich via diverser Schleifen und QAD-Getgroupmember gelöst.

Es gibt diverse Alternativen, aber diese sind "scheiße", sobald man mit mehreren Domänen arbeitet und zumeist ziemlich unschön.

 

Nun habe ich doch eine Lösung gefunden, die ähnlich wie get-adgroupmember arbeitet - ohne Limitierung, dazu rekursiv und auch durch diverse Verschachtelungen keine Probleme zeigt.

Toller Nebeneffekt - das Ding ist ziemlich performant und kann in der PowerShell nativ ausgeführt werden - .NEt3.5 Code

 

Quelle: http://stackoverflow.com/questions/8055338/listing-users-in-ad-group-recursively-with-powershell-script-without-cmdlets?rq=1 Kommentar von Shay Levy

#This will get all members of the domain Administrators group, including nested members (requires .NET 3.5).

$Recurse = $true
$Group ='Samaccountname der Gruppe'
Add-Type -AssemblyName System.DirectoryServices.AccountManagement
$ct = [System.DirectoryServices.AccountManagement.ContextType]::Domain
$group=[System.DirectoryServices.AccountManagement.GroupPrincipal]::FindByIdentity($ct,$Group)
$group.GetMembers($Recurse)| select EmailAddress, Distinguishedname, Givenname, Surname  
bearbeitet von PowerShellAdmin
Link zu diesem Kommentar

Gerne - übrigens hat sich die Abfrage bei 27.000 Benutzern (in 10 Gruppen verteilt) und 3 Attributen von 25 auf 6 Minuten reduziert.

Die Questmodule haben die Anfrage  verlangsamt - Daher bin ich auch kein Freund von 3. Anbieterlösungen (außer es muss sein).

 

 

Hoffentlich findet der Nächste dann die Lösung :) - Mit weniger Googelei

 

VG Admin

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...