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-
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-
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 151713
Url: https://administrator.de/contentid/151713
Ausgedruckt am: 26.11.2024 um 06:11 Uhr
4 Kommentare
Neuester Kommentar
Hallo -Martin-,
wenn Du auf den Backslash vor dem Benutzernamen verzichten kannst (der Aufruf Deines Batchfiles also so aussieht)
sollte folgender Batchcode zum Löschen eines Users funktionieren:
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
wenn Du auf den Backslash vor dem Benutzernamen verzichten kannst (der Aufruf Deines Batchfiles also so aussieht)
user.bat xy
net localgroup "administratoren" "%~1" /delete
Die Tilde (~) zwischen dem Prozentzeichen und der Parameternummer im obigen Code bewirkt, das evtl. umschließende Anführungszeichen entfernt werden.
Gruß
Friemler
@Friemler
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 "
bleiben ...
Grüße
bastla
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 schlichtennet localgroup "administratoren" %1 /del
Grüße
bastla