-martin-
Goto Top

Gruppenmitgliedschaft über bat-Datei mit Variable

Moin,

folgendes Problem/Fragestellung:

Ich möchte über eine bat-Datei einen User aus einer lokalen Gruppe entfernen/hinzufügen. Der Befehl hierzu lautet z.B.:

net localgroup "administratoren" "xy" /delete
Der Dateiname lautet "user.bat"

Soweit so gut, jetzt kann ich mit der bat-Datei User xy die lokalen admin-Rechte entziehen.

Wie kann ich es realisieren, daß ich den Benutzer variabel eingeben kann? Daß also beim ausführen des folgenden Befehls:
"user.bat /xy"
der Befehl auf user xy angewendet wird. Und bei Eingabe von:
"user.bat /xz"
der Befehl auf xz angewendet wird?

Geht das überhaupt?

Danke für eure hilfe
-Martin-

Content-ID: 151713

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

Ausgedruckt am: 12.11.2024 um 22:11 Uhr

Friemler
Friemler 24.09.2010 um 15:48:35 Uhr
Goto Top
Hallo -Martin-,

wenn Du auf den Backslash vor dem Benutzernamen verzichten kannst (der Aufruf Deines Batchfiles also so aussieht)
user.bat xy
sollte folgender Batchcode zum Löschen eines Users funktionieren:
net localgroup "administratoren" "%~1" /delete  
Der Ausdruck %1 steht für den ersten Parameter, den Du an ein Batchskript übergibst, %2 für den zweiten ... %9 für den neunten Parameter. Bei einer größeren Anzahl Parameter musst Du den Befehl SHIFT anwenden. Dadurch nimmt %1 den Wert des zweiten Parameters an, %2 den Wert des dritten ... %9 den Wert des zehnten Parameters. SHIFT kann mehrmals angewendet werden.

Die Tilde (~) zwischen dem Prozentzeichen und der Parameternummer im obigen Code bewirkt, das evtl. umschließende Anführungszeichen entfernt werden.

Gruß
Friemler
bastla
bastla 24.09.2010 um 15:57:37 Uhr
Goto Top
@Friemler
das evtl. umschließende Leerzeichen entfernt werden.
Dass damit Anführungszeichen gemeint waren, sei nur der Ordnung halber angeführt.

Die Schreibweise "%~1" ist allerdings (zumindest in diesem Fall) eigentlich schon zuviel des Guten - wenn der Parameter mit Anführungszeichen übergeben wurde, können die auch beibehalten werden, und wenn beim Aufruf keine Anführungszeichen verwendet wurden, sind sie für "net localgroup" auch nicht erforderlich - daher würde ich hier beim schlichten
net localgroup "administratoren" %1 /del
bleiben ...

Grüße
bastla
Friemler
Friemler 24.09.2010 um 16:02:38 Uhr
Goto Top
Hallo Bastla,

da hast Du schneller gelesen, wie ich meinen eigenen Fehler verbessern konnte face-wink (Leerzeichen... klar, Blödsinn).

Die Sache mit der Tilde habe ich nur der Vollständigkeit halber und zur Verwendung in anderen Fällen benutzt/erklärt.

Gruß
Friemler
-Martin-
-Martin- 24.09.2010 um 16:20:44 Uhr
Goto Top
Obwohl ich mich nur sehr schweren Herzens von dem Slash vor dem Usernamen trennen kann face-wink

Vielen Dank für Eure schnelle Hilfe - hat funktioniert

Gruß
-Martin-