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-Key: 58319

Url: https://administrator.de/contentid/58319

Printed on: May 22, 2024 at 15:05 o'clock

Member: bastla
bastla May 04, 2007 at 20:45:02 (UTC)
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]
Member: Dani
Dani May 04, 2007 at 20:51:15 (UTC)
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
Member: bastla
bastla May 04, 2007 at 20:56:36 (UTC)
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
Member: Dani
Dani May 04, 2007 at 21:02:43 (UTC)
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
Member: n4426
n4426 May 05, 2007 at 10:35:13 (UTC)
Goto Top
Das Script von Bastla funktoniert prima.

Vielen Dank dafür.

@Dani: Auch ein dankeschön an dich.

mfg
andi