Größenlimit für eine Anforderung wurde überschritten
Hallo zusammen,
ich habe mir ein Script gebastelt was mir allerdings bei 12000 Gruppenmitgliedern in die Bremse geht und mir den Fehler ausgibt "Das größenlimit für diese anforderung wurde überschritten".
Hat jemand eine Idee wie man das ganze umgehen kann, ohne irgendwas am DC zu ändern?
Bin noch PS Anfänger und bin am verzweifeln, daher ein Hilferuf...
Hier mein Script:
ich habe mir ein Script gebastelt was mir allerdings bei 12000 Gruppenmitgliedern in die Bremse geht und mir den Fehler ausgibt "Das größenlimit für diese anforderung wurde überschritten".
Hat jemand eine Idee wie man das ganze umgehen kann, ohne irgendwas am DC zu ändern?
Bin noch PS Anfänger und bin am verzweifeln, daher ein Hilferuf...
Hier mein Script:
$groupName = "Testgruppe"
$domainController = "TESTDOMAIN"
$group = Get-ADGroup -Identity $groupName -Server $domainController
if ($group -eq $null) {
Write-Host "Die Sicherheitsgruppe '$groupName' wurde nicht gefunden."
} else {
$members = Get-ADGroupMember -Identity $group -Server $domainController
foreach ($member in $members) {
if ($member.ObjectClass -eq "user") {
$user = Get-ADUser -Identity $member -Server $domainController
if (-not $user.Enabled) {
Remove-ADGroupMember -Identity $group -Members $user -Server $domainController -Confirm:$false
Write-Host "Der deaktivierte Benutzer $($user.Name) wurde aus der Sicherheitsgruppe entfernt."
}
}
}
Write-Host "Alle deaktivierten Benutzer wurden erfolgreich aus der Sicherheitsgruppe entfernt."
}
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 63778753590
Url: https://administrator.de/forum/groessenlimit-fuer-eine-anforderung-wurde-ueberschritten-63778753590.html
Ausgedruckt am: 10.04.2025 um 04:04 Uhr
5 Kommentare
Neuester Kommentar

Hi.
Immer besser direkt die Filter der Funktionen nutzen statt sich erst alle User zu holen und alle nacheinander einzeln durch zu ackern! Spart Unmengen an Zeit und Ressourcen bei der Menge an Mitgliedern.
Wenn du die LDAP Abfragesyntax nicht magst dann kannst du den Abfragefilter als Alternative auch über den normalen Filter definieren
Gruß Schrick
Immer besser direkt die Filter der Funktionen nutzen statt sich erst alle User zu holen und alle nacheinander einzeln durch zu ackern! Spart Unmengen an Zeit und Ressourcen bei der Menge an Mitgliedern.
$group = "CN=Testgruppe,CN=Users,DC=Domain,DC=de"
$disabledUsersInGroup = Get-AdUser -LdapFilter "(&(memberof=$group)(userAccountControl:1.2.840.113556.1.4.803:=2))"
if ($disabledUsersInGroup){
Remove-ADGroupMember -Identity $group -Members $disabledUsersInGroup -Confirm:$false -verbose
}
Wenn du die LDAP Abfragesyntax nicht magst dann kannst du den Abfragefilter als Alternative auch über den normalen Filter definieren
$disabledUsersInGroup = Get-ADUser -Filter "enabled -eq 'false' -and memberof -eq '$group'"
Gruß Schrick
Moin,
Merke: Hole immer nur die Daten, die Du auch brauchst!
Du fragst erst alle User ab, um sie dann alle einzeln zu untersuchen. Das ist Unsinn. Filtere erst nach den Usern, die Du auch wirklich brauchst und schicke sie dann in die Schleife. Ansonsten ist die Aufgabe ein Einzeiler:
Das kann man auch noch hübscher machen mit Fehlerbehandlung und Meldungen und evtl. eine for-each-Schleife statt for-EachObject. Aber das kriegst Du bestimmt hin.
Liebe Grüße
Erik
Zitat von @Tobi1983:
ich habe mir ein Script gebastelt was mir allerdings bei 12000 Gruppenmitgliedern in die Bremse geht und mir den Fehler ausgibt "Das größenlimit für diese anforderung wurde überschritten".
ich habe mir ein Script gebastelt was mir allerdings bei 12000 Gruppenmitgliedern in die Bremse geht und mir den Fehler ausgibt "Das größenlimit für diese anforderung wurde überschritten".
Merke: Hole immer nur die Daten, die Du auch brauchst!
Get-ADGroupMember -identity gruppenname | ?{$_.objectclass -eq "user"} | get-aduser | ?{$_.enabled -eq $false} | %{Remove-ADGroupMember -Identity gruppenname -Members $_}
Das kann man auch noch hübscher machen mit Fehlerbehandlung und Meldungen und evtl. eine for-each-Schleife statt for-EachObject. Aber das kriegst Du bestimmt hin.
Liebe Grüße
Erik