Bei einem Kunden sollte eine Reihe von AD-Gruppen komplett geleert werden. OK, kein größeres Problem – dachten wir.
Ein Weg, das per PowerShell zu machen, geht so:
Get-ADGroupMember "test_group" | ForEach-Object {Remove-ADGroupMember "test_group" $_ -Confirm:$false}
Funktionierte hier aber nicht – die PowerShell gab “Unspecified Errors” zurück. Wie sich herausstellte, lag die Ursache an verwaisten Objekten, die als Mitglieder der Gruppen geführt wurden. Diese zeigte das AD-Verwaltungsprogramm auch nur als SID an.
So ein Phänomen kann im Normalbetrieb gar nicht auftreten, denn wenn man einen User löscht, dann wird er automatisch aus seinen Gruppen entfernt. Hier war die Situation aber eine andere: Die verwaisten Objekte gehörten zu einer anderen Domäne, zu der vorher einmal eine Vertrauensstellung bestanden hatte. Diese Vertrauensstellung gab es aber nicht mehr.
Als Workaround fanden wir folgendes Verfahren, das zwar nicht richtig elegant ist, aber immerhin schnell arbeitet:
- Wir legten im AD eine neue, leere Dummy-Gruppe an.
- Nun ersetzten wir die Mitgliedslisten der betroffenen Gruppen pauschal durch eine neue Liste, die nur die Dummy-Gruppe enthielt:
dsmod group "CN=test_group,OU=Gruppen,DC=beispiel,DC=tld" -chmbr "CN=Dummy160704-1,OU=Gruppen,DC=beispiel,DC=tld"
- Am Ende löschten wir die Dummy-Gruppe.
http://faq-o-matic.net/?p=7433