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!

Recommended Posts

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

Edited by PowerShellAdmin
Link to comment

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.

Edited by PowerShellAdmin
Link to comment

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  
Edited by PowerShellAdmin
  • Like 1
Link to comment

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 to comment
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...