n4426
Goto Top

Alle Mitglieder eine Gruppe löschen (mit Ausnahmen)

Windows XP SP2

Hi,

ich hab mal eine frage zum löschen von Gruppen und Usern aus einer Gruppe.

Man kann ja mit mit folgender Batch-Zeile eine Domain-Gruppe bzw. -User eine Lokalen-Gruppe (PC) hinzufügen.

net localgroup Administratoren MyDomain\BereichsAdmins /ADD

Mit dieser Zeile kann ich wieder eine Domain-Gruppe bzw. User aus der Lokalen-Gruppe entfernen.

net localgroup Administratoren MyDomain\BereichsAdmins /DELETE

Ist es mittels Batch möglich alle Mitglieder aus der Gruppe Administratoren außer Administrator und MyDomain\Domain-Admins zu entfernen?


mfg
andi

Content-ID: 58319

Url: https://administrator.de/forum/alle-mitglieder-eine-gruppe-loeschen-mit-ausnahmen-58319.html

Ausgedruckt am: 25.12.2024 um 13:12 Uhr

bastla
bastla 04.05.2007 um 22:45:02 Uhr
Goto Top
Hallo n4426!

Das sollte etwa so gehen:
@echo off & setlocal
::Hier, mit Leerstellen getrennt, alle Ausnahmen anführen:
set "Ausn=Administrator MyDomain\Domain-Admins"  
for /f "skip=6 delims=" %%i in ('net localgroup administratoren^|findstr /v  
"Der Befehl wurde erfolgreich ausgeführt."') do call :ProcessMember "%%i"  
goto :eof
:ProcessMember
set Behalten=
for %%m in (%Ausn%) do if /i "%%m"==%1 set Behalten=True  
if defined Behalten goto :eof
echo net localgroup Administratoren %1 /DELETE
Achtung bei Umlauten: Falls es nicht "Domain-Admins", sondern "Domänen-Admins" sein sollten, bitte die fertige Batchdatei nochmals mit "edit Batchdatei.bat" aufrufen und das "ä" korrigieren. Die Menüsteuerung des Editors ist übrigens über die "Alt"-Taste zu erreichen - zum Beenden daher die Tastenfolge Alt-d - b - j (ja für Speichern) verwenden.

Das "echo" in der letzten Zeile soll das gefahrlose Testen ermöglichen, da der Löschbefehl dadurch nur angezeigt wird. Wenn wirklich gelöscht werden soll, das "echo" entfernen und ev noch ein ">nul" an das Ende der Zeile setzen.

Grüße
bastla

[Edit] Hinweis auf "echo" hinzugefügt [/Edit]
Dani
Dani 04.05.2007 um 22:51:15 Uhr
Goto Top
G' Abend Andi,
also ich habe mal ein bisschen was zusammen gebastelt. In meiner Umgebung sieht es nicht schlecht aus:
@echo off & setlocal

set gruppe=administratoren

for /f "skip=4" %%a in ('net localgroup administratoren ^|findstr /i /v "admin"') do (  
  if /i "%%a" NEQ "der" net localgroup %gruppe% /del %%a  
)
pause
Durch "findstr /v" werden alle Ergebnisse ausgegeben, die das Wort admin (Groß- & Kleinschreibung wird nicht beachtet => /i) nicht enthalten. Funktioniert bei mir soweit!

Update:
"bastla" war einfach mal wieder schneller! face-smile Ich gönn es dir....


Gruß
Dani
bastla
bastla 04.05.2007 um 22:56:36 Uhr
Goto Top
@Dani

Dankeschön - hab' aber sicher auch viel früher angefangen ...

Ich hatte es übrigens auch mit einem "skip=4" versucht, aber erst bei "skip=6" ist auch die Trennlinie "---------------------" weg (XP Pro SP2) - seltsam ...

Grüße
bastla
Dani
Dani 04.05.2007 um 23:02:43 Uhr
Goto Top
@bastla
Ich hatte es übrigens auch mit einem "skip=4" versucht, aber erst bei "skip=6" ist auch die
Trennlinie "---------------------" weg (XP Pro SP2) - seltsam ...
Sehr komisch...diese habe ich mit den 4 erschlagen. Leider habe ich kein anderes System zum Testen da. Vielleicht sieht Biber den Fehler bzw. hat eine Erklärung dafür.


Gruß
Dani
n4426
n4426 05.05.2007 um 12:35:13 Uhr
Goto Top
Das Script von Bastla funktoniert prima.

Vielen Dank dafür.

@Dani: Auch ein dankeschön an dich.

mfg
andi