- 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
Systeminformationen: systeminfo, tasklist, taskkill
Wenn ein PC oder Server zickt, willst du als FISI schnell wissen was los ist: Welches Windows läuft hier? Wie viel RAM ist verbaut? Was läuft an Prozessen? Welcher Prozess klemmt? Genau dafür sind die Befehle dieser Lektion da: systeminfo liefert das Inventar, tasklist zeigt laufende Prozesse, taskkill beendet sie wenn nötig.
Was im grafischen Task-Manager mit ein paar Klicks geht, läuft hier auf der Konsole – und damit auch automatisierbar, scriptbar, über Netzwerk an Remote-Rechner. Im Vergleich zu PowerShell mit Get-Process sind diese Tools schlanker und schneller – ideal für Schnellchecks.
1) systeminfo – das System-Inventar
Der Befehl der dir alles Wichtige über den Rechner verrät: systeminfo. Auf den ersten Blick wirkt die Ausgabe überwältigend, aber es sind die kompletten Eckdaten eines Systems. Brauche ich für jedes Helpdesk-Ticket, für Hardware-Inventarisierung, für Lizenz-Audits:
Lass uns das wichtige rausfiltern. Im Dashboard siehst du die Kernwerte – die alle aus diesem Output stammen:
2) Bestimmte Infos filtern
Die volle systeminfo-Ausgabe ist viel. Mit dem findstr-Befehl (siehe L6) filterst du genau das was du brauchst:
Für Reporting-Skripte besonders praktisch: systeminfo /fo csv /nh > inventar.csv – schreibt eine CSV-Zeile pro System, ohne Header, in eine Datei. Über PsExec oder Remote-PowerShell für eine Server-Farm aufgerufen ergibt das eine zentrale Inventar-Tabelle.
3) Verwandte Info-Befehle
systeminfo ist gründlich aber langsam (3-5 Sekunden Laufzeit). Für schnelle Einzelinfos gibt es schlanke Alternativen:
firma\annaMicrosoft Windows [Version 10.0.22631.4317]whoami ist besonders nützlich um zu prüfen als wer ein Skript läuft – relevant für Admin-Checks: net session 2>nul || (echo NICHT als Admin gestartet & exit /b 1). Mehr zu User-Sicherheits-Token in K28.4) tasklist – laufende Prozesse
Der wichtigste Befehl: tasklist zeigt alle laufenden Prozesse. Quasi das CMD-Pendant zum Task-Manager:
Spalten kurz erklärt: Abbildname = der Programm-Name (.exe), PID = Process-ID (eindeutig pro laufenden Prozess), Sitzungsname = unter welcher Anmeldesitzung läuft das (Services = Hintergrund-Dienst, Console = interaktive User-Session), Speichernutzung = aktueller RAM-Verbrauch in KB.
Spannend wird's mit Filtern. Probier den Live-Filter:
tasklist /fi "IMAGENAME eq chrome.exe" /fi "MEMUSAGE gt 100000" = alle Chrome-Instanzen mit mehr als 100 MB. Operatoren: eq (gleich), ne (ungleich), gt/lt (größer/kleiner, numerisch), ge/le. Bei IMAGENAME geht auch eq mit Wildcards wie chrome*.Weitere wichtige tasklist-Optionen:
tasklist /v: Verbose mit Username, Fenstertitel, Statustasklist /svc: zeigt zu jedem svchost-Prozess die Services dahinter (sehr nützlich!)tasklist /m: zeigt geladene DLLs pro Prozesstasklist /m mscoree.dll: nur Prozesse die diese DLL nutzentasklist /fo csv: CSV-Output für Verarbeitungtasklist /s SERVER /u USERNAME: Remote-Abfrage auf anderen Servern
tasklist /svc ist Gold wert. svchost.exe hostet zig Windows-Dienste – ohne /svc siehst du nur eine Liste anonymer svchost-Prozesse, mit /svc siehst du welcher Dienst hinter welcher PID steckt:
Hier siehst du dass z.B. der Druckspooler in PID 4156 läuft – wenn du den Spooler killen willst (klassisch bei Drucker-Problemen), brauchst du diese PID. Oder du nutzt net stop spooler für den eleganten Weg – mehr zu Diensten in K27 Windows Server.
5) taskkill – Prozesse beenden
Wenn ein Programm hängt und sich nicht schließen lässt: taskkill. Im Task-Manager wäre das „Task beenden", auf der Konsole dieser Befehl. Du kannst nach Name oder PID killen:
Die wichtigen Optionen im Überblick:
taskkill /im hängt.exe ohne /f. Das schickt eine WM_CLOSE-Nachricht – das Programm darf noch aufräumen (ungespeicherte Daten warnen, Locks lösen). Erst wenn das nicht klappt, mit /f Force. Wer immer mit /f arbeitet, riskiert Datenverlust und Korruption – besonders bei Datenbank-Prozessen.6) Praktische Anwendungsfälle
Drei klassische FISI-Szenarien für tasklist + taskkill:
7) Remote-Abfragen über Netzwerk
Eine schöne Eigenschaft dieser Befehle: sie funktionieren auch auf fremden Computern. Voraussetzung: gleicher Admin-Account (z.B. via Active Directory) und Remote-Zugriff erlaubt:
Damit kannst du von deinem Arbeitsplatz aus Probleme auf Servern und Kollegen-PCs diagnostizieren, ohne dich anzumelden. Praktisch für First-Level-Support. Für umfangreichere Remote-Operationen würdest du heute eher PowerShell-Remoting (Invoke-Command) nehmen, aber für schnelle Checks reicht CMD.
8) Zeit, Datum, Sonstiges
Ein paar weitere Mini-Werkzeuge die in keine andere Lektion passen:
Mit diesen Bausteinen kannst du Batch-Skripte (siehe L6) bauen die Logfiles mit Zeitstempel anlegen, Diskspace überwachen, oder bestimmte Prozesse automatisch neu starten wenn sie hängen.
9) Was geht und was nicht: ein paar Klarstellungen
Drei Punkte zur Realitätsprüfung:
- tasklist und taskkill brauchen keine Admin-Rechte für eigene Prozesse, aber Admin für System-Prozesse oder andere User. Wenn ein Kill scheitert: prüf
whoamiund starte CMD ggf. als Admin. - Du kannst System-Prozesse wie System (PID 4), Idle, csrss.exe usw. NICHT killen, auch nicht als Admin – das würde Windows zum Absturz bringen. Schutzmechanismen verhindern das.
- systeminfo ist langsam, weil es viele WMI-Abfragen macht. Bei Massenabfragen über viele Server lieber gezielt einzelne Daten holen, nicht alles.
10) Vergleich zu PowerShell
In PowerShell L6 machst du das alles mit Cmdlets – schöner und mit Objekt-Output:
| Aufgabe | CMD | PowerShell |
|---|---|---|
| System-Info | systeminfo | Get-ComputerInfo |
| Hostname | hostname | $env:COMPUTERNAME |
| User | whoami | $env:USERNAME |
| Prozesse | tasklist | Get-Process |
| Prozess beenden | taskkill /pid N | Stop-Process -Id N |
| Force-Kill | taskkill /f | Stop-Process -Force |
| Remote-Prozesse | tasklist /s SERVER | Invoke-Command -ComputerName SERVER {...} |
| Dienste | tasklist /svc | Get-Service |
Faustregel: für schnelle Schnellchecks ist CMD ideal, für Skripte und Berichte ist PowerShell besser. Beide haben ihre Berechtigung – und ein FISI nutzt beide.
Zusammenfassung
systeminfo liefert OS-Version, Hardware, RAM, Build, Uptime, Domain, Hotfixes. Mit findstr filtern für bestimmte Werte. /fo csv für Skript-Auswertung. Kurzbefehle: hostname, whoami, ver. tasklist zeigt Prozesse: /v verbose, /svc zeigt Dienste hinter svchost, /fi "FILTER" für Filter (IMAGENAME, PID, MEMUSAGE, STATUS, USERNAME) mit Operatoren eq/ne/gt/lt. taskkill beendet: /pid N oder /im NAME.exe, mit /f Force (Datenverlust-Risiko!), /t auch Kind-Prozesse. Reihenfolge: erst sanft ohne /f, dann mit Force wenn nötig. Remote: alle Befehle mit /s SERVER /u USER /p PW. Dienste sauber stoppen/starten mit net stop/start NAME statt taskkill. System-Prozesse (System, Idle) sind unkillbar. PowerShell-Pendants: Get-Process, Stop-Process, Get-ComputerInfo.
