- 1 Section
- 10 Lessons
- unbegrenzt
- CMD – Windows-Kommandozeile10
- 1.1CMD vs. PowerShell vs. WSL
- 1.2Navigation: cd, dir, md, rd, tree
- 1.3Dateioperationen: copy, move, del, ren, type
- 1.4Netzwerkbefehle: ipconfig, ping, tracert, nslookup
- 1.5Systeminformationen: systeminfo, tasklist, taskkill
- 1.6Batch-Scripting: Grundstruktur und Variablen
- 1.7Batch: Schleifen und Bedingungen
- 1.8Erweiterte Netzwerkdiagnose: arp, route, netsh
- 1.9Benutzer und Rechte: net user, net localgroup
- 1.10Praxisszenarien: Troubleshooting mit CMD
Benutzer und Rechte: net user, net localgroup
Auf jedem Windows-PC gibt es lokale Benutzer und Gruppen – getrennt vom Active Directory der Firma. Sie verwalten wer am Rechner anmelden darf, wer Admin-Rechte hat, welche Programme ein User starten kann. Die GUI dafür heißt „Lokale Benutzer und Gruppen" (lusrmgr.msc) – aber für Skripte, Remote-Verwaltung und schnelle Aufgaben gibt es net user und net localgroup.
Diese Befehle sind seit Windows NT (1993) im System und funktionieren bis heute praktisch unverändert. Pflichtwissen für FISI: bei Server-Setup, beim Anlegen lokaler Service-Accounts, bei Notfall-Reset eines vergessenen Admin-Passworts. Das Konzept der Berechtigungen findest du in K10 Berechtigungskonzepte.
1) Lokale User vs. Domain-User: der Unterschied
Bevor wir Befehle eintippen: ein PC kann zwei Arten Anmeldungen kennen:
- Lokale User: existieren nur auf diesem einen Computer. Anmeldung ohne Netzwerk möglich. Sicherheitsdaten in der lokalen SAM-Datenbank (
C:\Windows\System32\config\SAM). - Domain-User: existieren im zentralen Active Directory auf einem Domain Controller. Anmeldung auf jedem Domain-PC möglich. Verwaltung über PowerShell mit Get-ADUser oder die ADUC-Konsole.
net user arbeitet primär mit lokalen Usern. Auf Workstations meistens egal (haben oft nur lokale plus Domain-Login), auf Servern wichtig (Service-Accounts sind meist lokal). Wer mit Domain-Usern arbeiten will: nimm PowerShell aus K44 L7.
2) net user: Übersicht der lokalen Benutzer
Ohne Argumente listet net user alle lokalen User auf:
Standardmäßig sind viele dieser Konten deaktiviert (z.B. Administrator und Gast). Aktive Konten erkennst du am Detail-Befehl:
Schau dir besonders die letzten beiden Zeilen an: Lokale Gruppenmitgliedschaften. Hier siehst du dass „anna" Mitglied der Gruppe „Administratoren" ist – also volle Admin-Rechte auf diesem PC hat. Das ist genau die Info die du bei Sicherheits-Audits brauchst.
3) Net User Command-Builder
Stell dir ein realistisches Szenario vor: du sollst einen Service-Account anlegen für einen Backup-Dienst. Bau den Befehl interaktiv zusammen:
net user ANNA * (Sternchen am Ende = Prompt). Mehr zu sicherer Passwort-Handhabung in K11.net user anna NeuesPasswort mit dem Passwort direkt eintippst, landet es in der CMD-History und in Eventlogs! Sicherer: net user anna * – Sternchen statt Passwort, CMD fragt dann interaktiv ohne Bildschirm-Echo. Für Skripte: Variable oder besser PowerShell mit SecureString.4) Wichtige net user-Beispiele
Mit /domain fragst du gegen Active Directory ab (sofern du in einer Domain bist). Aber: dort ist PowerShell deutlich besser geeignet.
5) Wichtige Standard-Gruppen
Windows hat eingebaute Gruppen mit fest definierten Rechten:
6) net localgroup: Gruppen verwalten
Gruppen anzeigen, Mitglieder verwalten:
Wichtiges Pattern: in Domain-Umgebungen ist es üblich AD-Gruppen zu lokalen Gruppen hinzuzufügen, statt einzelne User. Beispiel: die AD-Gruppe „GG-IT-Admins" wird zur lokalen Administratoren-Gruppe hinzugefügt. Dann erbt jeder neue IT-Mitarbeiter automatisch die Admin-Rechte beim ersten Login. Best-Practice: AGDLP-Prinzip (Accounts → Globale Gruppen → Domain-Local Groups → Permissions). Mehr in K28.
7) Wer bin ich? whoami
Der wichtigste Begleit-Befehl: whoami zeigt dir wer du gerade bist und was du darfst:
Die SID (Security Identifier) ist die eindeutige interne ID jedes Users – Windows arbeitet intern damit, nicht mit dem Klartext-Namen. Wenn du jemals einen verwaisten Ordner unter C:\Users\TEMP.WHATEVER findest, ist das ein User dessen SID nicht mehr aufgelöst werden kann.
8) Berechtigungen prüfen: bin ich Admin?
Für Skripte ist eine häufige Frage: läuft dieses Skript als Admin? Es gibt mehrere Tricks das zu prüfen:
Das ist ein häufiges Pattern am Anfang von Wartungs-Skripten: erst prüfen ob Admin, sonst sofort abbrechen mit Hinweis. Sonst hat man halbfertig durchlaufene Operationen mit Fehlern – das ist viel ärgerlicher als ein klarer Stopp am Anfang.
9) Befehl als anderer User ausführen: runas
Manchmal willst du einen einzelnen Befehl unter einem anderen User ausführen, ohne dich neu anzumelden. runas macht das – das CMD-Pendant zu sudo unter Linux:
Achtung mit /savecred: Die Anmeldedaten werden in der Windows-Anmeldeinformationsverwaltung gespeichert. Bei einem Admin-Account ist das ein Sicherheitsrisiko – jeder mit Zugang zur Maschine könnte diese Credentials nutzen. Mehr zu sicherer Credentials-Handhabung in K11.
10) Praktisches Beispiel: Helpdesk-Skript
Ein realistisches Skript für den Helpdesk: einen neuen Mitarbeiter mit Standard-Rechten anlegen:
Das Skript nutzt vieles aus den vorherigen Lektionen: Argumente und setlocal aus L6, if-Bedingungen aus L7, sowie die hier gelernten net-Befehle. Mit dem * bei net user wird das Passwort interaktiv abgefragt – sicherer als es ins Skript zu schreiben.
11) Vergleich zu PowerShell
| Aufgabe | CMD | PowerShell |
|---|---|---|
| Lokale User listen | net user | Get-LocalUser |
| User anlegen | net user X PW /add | New-LocalUser |
| User löschen | net user X /delete | Remove-LocalUser |
| Gruppen listen | net localgroup | Get-LocalGroup |
| Zu Gruppe hinzufügen | net localgroup G X /add | Add-LocalGroupMember |
| Mitglieder einer Gruppe | net localgroup G | Get-LocalGroupMember |
| Wer bin ich? | whoami | $env:USERNAME |
| Domain-User | (eingeschränkt mit /domain) | Get-ADUser, New-ADUser |
Faustregel: für lokale User auf einem Rechner geht beides – CMD ist kompakter. Für Domain-User ist PowerShell mit den AD-Cmdlets deutlich besser geeignet. whoami ist universell überall verfügbar.
12) Sicherheits-Best-Practices
Ein paar Regeln die du als FISI verinnerlichen solltest:
- Least Privilege: User nur die Rechte geben die sie brauchen. Nicht jeden in „Administratoren" packen. K10 im Detail.
- Service-Accounts trennen: Nicht den eigenen Admin-Account für Dienste verwenden. Eigene Service-Accounts mit speziell zugeschnittenen Rechten (oft nur „Anmelden als Dienst", manchmal „Sicherungsoperatoren").
- Mitarbeiter-Austritt → erst deaktivieren, nicht löschen: Daten könnten noch gebraucht werden. Mehr zu Aufbewahrungspflichten in K05.
- Passwort-Hygiene: Lange Passwörter, regelmäßiger Wechsel (für Personen) bzw. komplexe und unveränderliche Passwörter für Service-Accounts.
- Auditing: Regelmäßig prüfen wer in „Administratoren" ist. Mit
net localgroup Administratorenoder Reporting-Skripten. - Standard-Konten: „Administrator" und „Gast" deaktiviert lassen – sie sind bekannte Angriffsziele.
Zusammenfassung
net user verwaltet lokale Benutzer: ohne Args = Liste, mit Name = Details, /add = neu, /delete = weg, /active:yes/no = aktivieren/deaktivieren, /expires:DATUM = Ablauf, * = interaktive Passwort-Eingabe (sicher!). net localgroup: Gruppen-Verwaltung, mit Username/Gruppenname und /add oder /delete. Wichtige Gruppen: Administratoren (volle Rechte), Benutzer (Standard), Remotedesktopbenutzer, Sicherungs-Operatoren. whoami zeigt aktuellen User, /groups Mitgliedschaften, /priv Privilegien, /user SID. Admin-Check in Skripten: net session >nul 2>&1 && ... || .... runas für Befehle als anderer User (CMD-Pendant zu sudo). Best-Practices: Least-Privilege, eigene Service-Accounts, bei Austritt erst deaktivieren, Standard-Konten deaktiviert lassen. Für Domain-User ist PowerShell mit AD-Cmdlets deutlich besser. Mehr Konzepte in K10 und K28.
