Klein, stark, schwarz: Die Rede ist nicht vom Espresso nach dem Essen, sondern von der Kommandozeile unter Windows, in Fachkreisen auch Shell genannt. Das unscheinbare, schwarze Fenster ist mehr als ein Relikt aus alten DOS-Zeiten und kann - bei Kenntnis aller Möglichkeiten - dem Windows-Profi viel Klickarbeit ersparen. Im folgenden Artikel stellen wir die wichtigsten Befehle und Möglichkeiten im Umgang mit der Windows-Shell dar.
DOS, kein DOS
Einer unserer ältesten Artikel "Überleben am DOS-Prompt" ist auch heute noch in den Top20 der meist abgerufenen Artikel auf WinTotal. PCDParker beschrieb damals, mit welchen Befehlen Dateioperationen in Shell/DOS ausgeführt werden. Alte DOS-Hasen sind mit dem Befehlen auch heute noch sicher vertraut. Die Vielzahl unserer Leser ist aber ohne Maus und Explorer oft aufgeschmissen und für solche Hilfestellungen dankbar.
Doch die Shell ist – entgegen ihrem Aussehen – kein DOS, sondern eine native Win32-Anwendung und bietet mehr als einfache Dateioperationen. Wie auf Linux-Systemen üblich, kann über die Shell viel mehr angestellt und abgefragt werden als die meisten User überhaupt wissen.
Microsoft hat übrigens den Nachfolger der aktuellen eingeführt, welche sich Windows PowerShell nennt. Als objektorientierter Nachfolger von Cmd.exe setzt sie ganz auf .NET und bietet für Entwickler und Administratoren viele nützliche Neuigkeiten. Weitere Infos zu Microsoft PowerShell finden Sie auf der Homepage zur PowerShell sowie als Download auf WinTotal.
Willkommen in der Shell
Die Kommandozeile, in der Folge nun nur noch Shell genannt, starten Sie wie folgt:
Die Windows-Shell ist als ausführbare Datei cmd.exe im System32-Ordner von Windows zu finden. Sie starten die Shell über Start -> Ausführen ([Windows-Taste]+[R]) -> cmd.
Für Windows Vista:
Sie können "Ausführen" im Startmenü wieder herstellen oder in die Suche einfach cmd eingeben.
Windows Vista-Nutzer müssen die Eingabe zudem mit [STRG]+[ALT]+[Enter] abschließen, um in der Shell Administratorrechte zu haben (siehe Tipp), sofern UAC nicht generell abgeschaltet wurde.
Die Shell öffnet sich im Regelfall im aktuellen Pfad des Benutzers oder im System32-Ordner. Die Stelle, an der Sie etwas eingeben können, nennt man Prompt.
Zunächst können Sie die Shell nach eigenen Wünschen anpassen. Dazu klicken Sie mit der linken oder rechten Maustaste auf das Icon oben links in der Shell. Im erscheinenden Menü können Sie unter Eigenschaften das Erscheinungsbild und Verhalten der Shell bestimmen.
Neben Farbwahl, Fenster -oder Vollbildansicht, können Sie unter Layout die Fenstergröße und Fensterpuffergröße anpassen: 50 Zeichen in der Höhe und eine Pufferhöhe (zum Zurückscrollen) von 500 Zeichen sollten es schon sein. Die Breite sollte man in beiden Optionen bei 80 Zeichen belassen.
Unter den Optionen finden sich die Bearbeitungsoptionen QuickEdit-Modus und Einfügemodus.
Mit dem QuickEdit-Modus können Sie mit gedrückter Maustaste den Text in der Shell erfassen. Drücken Sie anschließend RETURN, wird der markierte Text in die Zwischenablage übernommen. Wenn man das nicht aktivieren will, kann man über das Kontextmenü in der Shell "Markieren" wählen. Der Rest ist dann identisch.
Der aktivierte Einfügemodus ermöglicht es, noch Text an der Kommandozeile einzufügen, ohne den rechts davon befindlichen Text zu überschreiben. Die Funktion ist aus der Textbearbeitung her meist bekannt.
Die Shell bietet darüber hinaus viele Komfortfunktionen, wie man sie von dem alten Doskey-Programm her noch kennt:
Mit F3 beispielsweise wird der zuletzt verwendete Befehl erneut am Prompt eingegeben. Mit F8 können Sie durch die zuletzt verwendeten Befehle blättern, mit F7 sehen Sie die History und mit F9 können Sie die Befehlsnummer (laut History) direkt aufrufen.
Die Pfeiltasten haben in der Shell auch eine Bedeutung. Nach oben ruft in umgekehrter Reihenfolge die letzten Befehle auf. Nach rechts stellt Zeichen des letzten Befehls wieder her.
Eine Übersicht über alle Tastaturkürzel und deren Verwendung finden Sie in der Onlinehilfe von Windows XP unter dem Stichwort "Doskey".
Integration ins Kontextmenü
Wie bereits dargestellt, öffnet sich die Shell immer im Ordner des Benutzers oder im System32-Ordner. Wollen Sie in einen anderen Ordner wechseln, müssen Sie ggf. das Laufwerk und dann den Pfad mit dem Befehl cd bzw. chdir wechseln. Über einen Registry-Eintrag können Sie aber einen Kontextmenüeintrag für den Explorer erstellen, welcher die Shell in dem gerade ausgewählten Ordner öffnet.
Hierzu erstellt man in der Registry unter
HKEY_CLASSES_ROOT\Directory\shell
und
HKEY_CLASSES_ROOT\Drive\shell
einen neuen Schlüssel mit dem Namen cmd und darin als Standard-SZ einen Text wie "Prompt ab hier". Weiter muss man unterhalb von dem erstellten cmd-Schlüssel einen weiteren Schlüssel mit dem Namen command erstellen und darin eine neue Zeichenfolge (Name nichts eingeben = Standard) mit dem Wert cmd.exe /k "cd %L" anlegen. Download als gezipptes Reg-File.
Der Parameter /k weist die Shell an, den folgenden Befehl auszuführen und dann auf neue Befehle zu warten. Cd%L wechselt dabei in den aktuell selektierten Pfad.
Besonderheit Windows Vista
Der Explorer von Windows Vista bietet die gleiche Funktion als Neuerung. Wenn Sie im rechten Fenster des Explorers die Umschalttaste gedrückt halten und dabei die rechte Maustaste drücken, können Sie die Eingabeaufforderung auch direkt über "Eingabeaufforderung hier öffnen" ansteuern. Auf gleichem Weg können Sie den aktuellen Pfad eines markierten Verzeichnisses über "Als Pfad kopieren" in die Zwischenablage legen.
Wer den Eintrag "Eingabeaufforderung hier öffnen" dauerhaft im Kontextmenü haben möchte und nicht nur bei Shift-Rechtsklick, muss bei Vista in der Registry unter HKEY_CLASSES_ROOT\Directory\shell\cmd den Eintrag Extended löschen.
Wenn man das auch fürs Kontextmenü der Festplatten haben will, muss man unter Vista in der Registry unter HKEY_CLASSES_ROOT\Drive\shell\cmd ebenfalls den Eintrag Extended löschen.
Weitere Möglichkeiten zur Pfadübergabe und Vervollständigung
Die Shell bietet unter Windows XP noch weitere Möglichkeiten, um den Pfad zu übernehmen: Zum einen können Sie per Drag and Drop Pfadangaben aus dem Explorer in das Shellfenster ziehen. Geben Sie davor cd am Prompt ein, wechselt die Shell nach dem Drag and Drop des Pfades und einem Return in diesen. Bei Windows Vista funktioniert diese Feature nicht mehr.
Als weiteres Feature bietet die Shell seit Windows XP eine Autovervollständigung über die Tab-Taste. Wenn Sie beispielsweise in das Verzeichnis "Dokumente und Einstellungen" wechseln möchten und sich im Root C: befinden, reicht cd Dok Die Shell vervollständigt dann den Pfad. Gibt es keine genaue Übereinstimmung (z.B. System und System32), können Sie auch mehrfach TAB drücken.
Infos zum Umgang mit den Befehlen
Normalerweise liefert jeder Befehl ein Ergebnis oder führt eine Aktion aus. Sie können die Ausgabe eines Befehls aber auch in eine Datei (z.B. für Diagnosezwecke) ausleiten, mehrere Befehle verknüpfen oder komplexe Abfragen als Batch-Datei (Endung .bat oder .cmd) automatisiert bestimmte Aufgaben abarbeiten lassen. Gerade die letzte Option wird für Netzwerke oft genutzt, um beim Login für bestimmte Benutzer Netzwerkfreigaben als Laufwerke zu verbinden, Patches ggf. aufzuspielen, den Standarddrucker festzulegen usw.
Seitenweise anzeigen
Manche Befehle erschlagen den Anwender mit Infos oder Dateilisten am Shell. Mit der Ergänzung |more hinter dem Befehl stoppt die Ausgabe nach jeder Seite - z.B. dir c:\windows |more
Ausleiten in eine Datei
Der Befehl netstat -a listet alle Verbindungen und abgehörte Ports auf. Mit der Ergänzung netstat -a > c:\Logfilesliste.txt wird die Ausgabe in eine Textdatei liste.txt in den Ordner Logfiles ausgeleitet. Diese Umleitung funktioniert mit allen Befehlen, welche ein Ergebnis ausgeben und bietet sich immer an, wenn die Menge an Informationen in der Shell zu unübersichtlich wird. Wenn Sie keinen speziellen Ordner für die Ausleitung in eine Datei angeben, wird die Textdatei im aktuellen Verzeichnis der Shell geschrieben, von der aus der Befehl aufgerufen wurde.
Wenn Sie zwei statt einer Spitzklammer angeben, wird das Ergebnis an die benannte Datei angehängt, ohne den Inhalt zu löschen. Sie können mit diesem Kniff fortlaufende Logfiles anlegen
netstat -a >> c:\Logfilesliste.txt
Ausleiten auf den Drucker
Die Ausleitung funktioniert natürlich auch zum Drucker. Hinter der Spitzklammer müssen Sie dazu den Druckeranschluss nennen, also z.B. lpt1. Die richtige Syntax lautet dann netstat -a > lpt1
Für Netzwerk- oder USB-Drucker muss man sich aber mit einem Trick behelfen: Die Ausgabe erfolgt hier über Notepad, welches auf dem Standarddrucker ausdruckt. Hierzu verwenden wir das Hilfsprogramm start, welches aus der Shell heraus auch Fensterprogramme mit Parametern aufrufen kann (siehe start).
Die Syntax lautet dann start /w notepad /p datei.txt (ggf. mit Pfad).
Kombination von Befehlen
Mit dem &-Zeichen können Sie Befehle kombinieren. Die Befehle werden dann nacheinander abgearbeitet.
netstat -a > ausgabe.txt & start /w notepad /p ausgabe.txt
gibt z.B. die netstat –a Ausgabe auf die Datei ausgabe.txt aus, welche dann von Notepad auf dem Standard-Drucker gedruckt wird.
Über Klammern können Sie Befehle auch logisch zusammenfassen:
(date /t & Time /t & netstat -a) > ausgabe.txt & start /w notepad /p ausgabe.txt
Das Datum, die Uhrzeit und der Netstat-Befehl werden in die Datei ausgabe.txt geschrieben und dann gedruckt.
Für kleinere Operationen macht dies noch Sinn. Bei komplexeren Abläufen dürfte eine Batch-Datei, welche sich noch kommentieren lässt, aber die bessere Wahl sein.
Batchdateien
Die bekannteste aller Batchdateien war und ist die autoexec.bat. Sie war unter DOS zusammen mit der config.sys für den Start des Systems verantwortlich und beinhaltete neben dem Start von Treibern auch ggf. Abfragen und Variablen. Das Thema Batchdateien ist sehr komplex und würde den Rahmen dieses Artikels sprengen. Die Windows-Hilfe führt mit den Ergebnissen der Suche mit dem Begriff "Batchdateien" bzw. mit der Befehlsübersicht eine Fülle von Informationen zu Batchdateien, deren Erstellung, Einsatz von Abfragen und Variablen usw. Weiterführende Links zu dem Thema finden Sie am Ende des Artikels.
Kleine Befehlsübersicht
Der klassische help-Befehl zeigt nur die Windows-Standardbefehle an.
Eine komplette Übersicht unter Windows XP erhalten Sie über die Windows-Hilfe (Befehlszeilenreferenz als Suchbegriff eingeben) oder online (Version für Windows XP).
Bei Windows Vista wurden die Inhalte leider nicht mehr in die Hilfe aufgenommen und der Link in der Onlinehilfe selbst führt ins Leere.
Während einige Befehle ein oder mehrere Argumente und Parameter erwarten, starten andere Befehle eigenständige Programme mit weiteren Befehlen, z.B. diskpart.
Zu jedem Befehl können Sie die komplette Syntax mit befehl/? anzeigen lassen.
In der Folge haben wir zu den wichtigsten Bereichen Befehle und deren Anwendung kurz beschrieben. Die Befehle sind thematisch gruppiert. Beachten Sie bitte, dass wir nur einen kleinen Teil der Befehle hier präsentieren. Für weitere Informationen schauen Sie sich bitte für den jeweiligen Befehl die Dokumentation in der Onlinehilfe bzw. am Prompt über befehl /? an. Zusätzliche Angaben finden Sie auch im Abschnitt "Weiterführende Weblinks und Buchtipps" am Ende des Artikels.
Allgemeine Befehle
CLS
CLS (Clear Screen) löscht den Bildschirm innerhalb der Konsole.
Echo
Der Echo-Befehl findet häufig in Batch-Dateien Verwendung und gibt Meldungen aus oder unterdrückt diese (echo off).
Im Zusammenhang mit der Abfrage von Variablen ist Echo aber auch als einfacher Befehl sehr hilfreich. So können Sie z.B. mit echo %computername% direkt den Namen der Arbeitsstation abfragen, mit echo %temp% den Temp-Pfad, mit echo %appdata% den Pfad für den Ordner Anwendungsdaten oder mit echo %systemroot% den Pfad des Windows-Verzeichnisses.
Eine Übersicht über alle möglichen Variablen und deren Werte erhalten Sie durch die Eingabe von set am Prompt (siehe weiter unten).
Path
Mit dem Path-Befehl können Sie die festgelegten Verzeichnispfade angeben, in denen die Shell nach ausführbaren Programmen sucht, wenn Sie deren Namen eingeben. Path ohne Angabe von Parametern gibt zunächst die Pfadangaben aus, die schon hinterlegt sind. Weitere Pfade können Sie über path=C:\PFAD ;%path% hinzufügen. Die Angabe von ;%path% bewirkt, dass der bisherige Pfad nicht mit dem neuen komplett überschrieben, sondern ergänzt wird. Haben Sie z.B. eigene Batchdateien im Ordner BATCH auf C:, können Sie diesen Ordner über path=c:\Batch;%path% mit aufnehmen und können ab dann an jeder Stelle auf den Laufwerken die Batch-Datei starten, ohne erst in den entsprechenden Ordner zu wechseln.
Achtung: Sobald Sie die Shell schließen, werden die hinzugefügten Path-Pfade verworfen. Für einen dauerhaften Einsatz müssen die Path-Anweisungen daher in der Systemsteuerung unter System -> Erweitert -> Umgebungsvariablen angegeben werden. Sie können die Path-Anweisung hier auf den Benutzer bezogen oder systemweit festlegen.
Set
Der Set-Befehl ohne Parameter zeigt die aktuellen Umgebungsvariablen an, welche Sie auch mit Echo einzeln abfragen können.
Darüber hinaus bietet der Set-Befehl die Möglichkeit, neue Umgebungsvariablen zu setzen oder deren Wert zu überschreiben.
Reg (+Unterbefehl)
Mit dem REG-Befehl haben Sie direkt die Möglichkeit, auf die Registry von Windows zuzugreifen, Werte auszulesen, zu löschen, neu anzulegen oder zu überschreiben. Der REG-Befehl erwartet einen Unterbefehl (Reg ADD, Reg DELETE, Reg COPY, Reg QUERY...), um bestimmte Operationen im Zusammenhang mit der Registrierdatenbank auszuführen. Sie können sich für jeden Unterbefehl die genaue Syntax anzeigen lassen, z.B: reg add /?
Für alle Hauptschlüssel in der Registry werden mit reg folgende Abkürzungen verwendet:
- HLKM (Hkey_Local_Machine)
- HKCU (Hkey_Current_User)
- HKCS (Hkey_Classes_Root)
- HKCC (Hkey_Current_Config)
So führt der Befehl
reg add HKLM\Software\Microsoft\Windows\CurrentVersion /v backuppath /t REG_SZ /d P:storage
Folgendes aus:
Im Schlüssel HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion wird ein neuer Wert (/v) mit dem Namen backuppath angelegt, welcher als Dateityp (/t) REG_SZ (Zeichenfolge) den Wert (/d) P:storage erhält.
Der Befehl reg add HKLM\Software\Microsoft\Windows\CurrentVersion\backupinfo fügt dagegen einen neuen Unterschlüssel mit dem Namen backupinfo ein, der zuvor noch nicht existierte.
Hinweis: Oft ist es einfacher, mit dem GUI-Programm regedit und dessen Schaltern /s für den Import bzw. /a für den Export Werte in die Registry einzutragen bzw. zu exportieren.
start
Mit dem Start-Befehl können Sie einen neuen Prozess aus der Shell heraus starten, im Regelfall ein Windows-Programm. Durch weitere Parameter können Sie die Priorität des Prozesses sowie ein minimiertes oder maximiertes Fenster zur Ansicht festlegen.
start /w notepad /p datei.txt startet beispielsweise Notepad und wartet (/w) auf dessen Beendigung. Der Parameter /p an Notepad druckt die datei.txt.
Dateioperationen
Cipher
Das Dateisystem NTFS bietet auch die Möglichkeit, Dateien zu verschlüsseln bzw. zu entschlüsseln. Zudem können Sie mit cipher auch die privaten Schlüssel und Zertifikate exportieren, um ggf. auch ohne den bestehenden Account die Daten wieder unverschlüsselt öffnen zu können. Der Parameter /e verschlüsselt und /d entschlüsselt die Dateien wieder.
Beispiel: cipher /e c:Privates verschlüsselt den Ordner Privates und die darin befindlichen Ordner und Dateien
Beispiel: cipher /e /c:Privates *.doc verschlüsselt alle DOC-Dateien im Ordner Privates.
Weitere Informationen zur Verschlüsselung unter Windows bietet der gesonderte Artikel „Dateiverschlüsselung“.
Cacls
Der Cacls-Befehl bietet die Möglichkeit, über die Shell Sicherheitseinstellungen für Dateien und Ordner zu setzen. Normalerweise bedienen Sie hierzu die Registerkarte "Sicherheit" in den Eigenschaften eines Ordners oder einer Datei. Mit Cacls können Sie diese Rechte aber auch über die Shell setzen – unter Windows XP Home übrigens der einzige Weg (ohne entsprechende Erweiterungen und Patches).
Cacls e:\Dokumente*.* /p Kinder:N entzieht beispielsweise dem Account "Kinder" alle Rechte für den Ordner Dokumente.
In der Support.cab (siehe Artikelende) findet sich das Kommandozeilenprogramm Xcacls, welches weitere Möglichkeiten im Zusammenhang mit den Sicherheitseinstellungen bietet.
Compact
Mit dem Compact-Befehl können Sie die im NTFS-Dateisystem enthaltene Komprimierungsfunktion nutzen und Dateien und Ordner packen (/c) bzw. entpacken (/u). Wenn Sie ganze Verzeichnisse komprimieren möchten, lautet die Syntax: compact /c /s c:\Privates (für den Ordner "Privates" unter C:).
Expand
Der Expand-Befehl kann Dateien aus den von Windows genutzten CAB-Dateien extrahieren.
Mit expand –d Cab-Datei bekommen Sie den Inhalt einer CAB-Datei angezeigt. Expand Cab-Datei –f:Dateien Ziel entpackt die angegebenen Dateien aus der Cab-Datei an das festgelegte Ziel.
Hinweis: Leider kann Windows selbst keine gängigen Archive (ZIP, RAR etc.) über die Kommandozeile entpacken. Hier müssen Sie sich mit Fremdmitteln helfen. Eine sehr gute Variante ist das Kommandozeilenprogramm des kostenlosen 7-Zip. Legen Sie den Inhalt entpackt in einen vom "Path" mit genutzten Ordner (z.B. Windows etc.). Sie können dann bequem aus der Shell heraus fast alle Archivdateien entpacken oder eigene erstellen.
Rename
Mit dem Rename-Befehl, kurz ren, können Sie auf einen Rutsch mehrere Dateien umbenennen. Dazu geben Sie z.B. ren *.nfo *.txt ein, um alle nfo-Dateien in txt-Dateien umzubenennen. Achtung: Eine Konvertierung in das neue Format findet aber nicht statt.
Copy
Der Copy-Befehl kopiert eine Datei in ein anderes Verzeichnis oder in dasselbe Verzeichnis, aber unter einem anderen Namen. Er eignet sich aber nicht für tiefergreifende Kopieraktionen (siehe hierfür XCopy).
copy WinTotal.txt a: (kopiert die WinTotal.txt auf das Laufwerk a)
copy WinTotal.* c:\temp (kopiert alle Dateien mit dem Namen WinTotal in das Verzeichnis c:temp)
copy c:\temp*.txt d:\windows (kopiert alle Dateien mit der Endung txt im c:temp-Verzeichnis in das Windows-Verzeichnis auf dem Laufwerk d)
Move
Der Windows-User würde zu diesem Befehl "Ausschneiden" sagen. Prinzipiell ist dieser Befehl mit dem copy-Befehl identisch, nur wird die Quelldatei VERSCHOBEN und nicht kopiert. move *.* a: alle Dateien werden zum Laufwerk a verschoben.
XCopy
Der XCopy-Befehl ist die aufgebohrte Variante des Copy-Befehls und kann ganze Verzeichnisbäume kopieren. Dazu stehen zahlreiche Parameter zur Verfügung. /e kopiert auch Unterverzeichnisse (egal ob leer oder nicht); /y unterdrückt die Aufforderung, die Datei auf dem Ziel zu überschreiben etc.
XCopy "c:\Dokumente und Einstellungen\ap73mi\Favoriten*.*" " \\mittelerde\Sicherungen\ap73mi\favoriten" /e /y
sichert z.B. alle Favoriten vom Benutzer ap73mi zum Ordner "Sicherungen/ap73mi/favoriten/" auf dem Server "Mittelerde".
Benutzer– und Clientverwaltung
Runas
Mit dem Befehl runas /user:Username Programm starten Sie ein Programm im Kontext eines anderen Benutzers. Sie können mit diesem Befehl z.B. auch als eingeschränkter Benutzer ein Programm im Kontext des Administrators ausführen, ohne sich als Admin anzumelden. Ersetzen Sie hierbei Username durch den Screenname des Administrators. Das notwendige Passwort wird beim ersten Aufruf abgefragt und dann hinterlegt, wenn als Parameter noch /savecred mit angegeben wird.
Netzwerk
Ping
Der Ping-Befehl ist simpel, aber einer der wichtigsten zur Diagnose in Netzwerken. Mit dem Ping-Befehl senden Sie eine Anfrage an eine IP oder einen Rechnernamen. Der Befehl sendet per Default 4 Signale an die Gegenstelle, listet jede Auslieferung aus und fasst das Ganze am Ende statistisch zusammen. So können Sie schnell prüfen, ob das Netzwerk überhaupt funktioniert und beispielsweise der Router überhaupt erreichbar ist. Ein Ping zum eigenen Rechner (127.0.0.1) bringt oft Klarheit, falls der TCP/IP-Stack auf dem Rechner nicht richtig funktioniert.
Ipconfig
IPconfig zeigt die IP-Konfiguration des Rechners an. Sie sehen die lokale IP, Subnetzmaske und den Gateway, welchen im Heimnetzen meist der Router darstellt. Sehen Sie hier einen anderen Gateway oder finden den Rechner in einem anderen Adressraum über die IP, könnte eine gestörte Kommunikation mit dem Router bzw. dessen DHCP-Server vorliegen.
Der erweiterte Befehl ipconfig /all gibt darüber detailliert Auskunft.
War der Rechner beim Starten noch nicht mit dem LAN verbunden, findet dieser keinen DHCP-Server und verwendet dann eine selbst gewählte IP, die nicht unbedingt im gleichen Adressraum liegen muss. Gerade bei WLAN-Verbindungen kann dies vorkommen. Um einen Neustart zu vermeiden, können Sie mit Ipconfig /renew das System anweisen, eine neue Initialisierung vorzunehmen. Der Rechner sucht nun erneut nach einem DHCP-Server und bekommt von diesem (meist Router) eine IP-Adresse sowie die Subnetzmaske und den Gateway übermittelt.
Mit ipconfig /release können Sie die IP-Bindung auflösen, per Parameter auch nur für einzelne Netzwerkverbindungen, wenn der Rechner z.B. per LAN und WLAN mit anderen Netzen verbunden ist. Mit ipconfig /flushdns leeren Sie den DNS-Auflösungscache.
tracert
Der Tracert-Befehl erwartet eine IP oder einen Rechnernamen. Im Anschluss listet der Befehl als Ergebnis auf, welche Wege das Signal vom Rechner bis zum Ziel nimmt. Sie sehen die Anzahl der Zwischenstationen im Netz und deren Verzögerung.
netstat
Mit dem Befehl netstat listet die Shell alle aktiven Netzwerkverbindungen mit Angabe von Protokoll, Remoteadresse, Port und Status auf. Mit dem Parameter –a listet Netstat alle Protokolle und serverseitigen Verbindungen auf, netstat –n listet dagegen die Verbindungen mit numerischen IP-Adressen statt Rechnernamen auf.
Sie können die Ausgabe auch auf bestimmte Protokolle (UDP, TCP) beschränken, netstat –n –p tcp, listet z.B. nur die TCP-Verbindungen auf.
net (+Unterbefehl)
Der net-Befehl ist einer der mächtigsten Konfigurationsbefehle unter Windows für das Netzwerk. Mit dem net-Befehl können Sie Dateifreigaben oder Benutzerkonten beeinflussen, Informationen über das Netzwerk abrufen und vieles mehr.
Mit net help erhalten Sie eine Auflistung aller Unterbefehle und net UNTERBEFEHL help zeigt letztlich die benötigten Parameter an.
Interessant sind hierbei die zahlreichen Unterbefehle, z.B.
Net time (Zeitverwaltung)
Net user, localgroup, group (Benutzerverwaltung)
Net share, use, file, session (verwaltet Dateifreigaben)
Net config, statistics, view (Informationen zum Netz und Netzdiensten)
Net start, pause, continue, stop (Konfiguration der Windows-Dienste)
Net send (Mitteilungen im Netzwerk versenden)
Net computer (Rechner in Domäne aufnehmen)
Beispiele:
Net share zeigt alle Freigaben an.
Mit net share dokumentelan=e:\Dokumente /users:5 wird der Ordner e:Dokumente im Netzwerk als „dokumentelan“ für maximal 5 User gleichzeitig freigegeben.
net use q:\mittelerdepublic bindet die Freigabe public auf dem Server Mittelerde als Laufwerk Q in das System ein.
Mit der Ergänzung /delete wird die Bindung von use oder die Freigabe von share wieder aufgehoben.
Zusätzlich kann als Option noch /savecred bei net use und net share dazu benutzt werden, um die Anmeldeinformationen zur Nutzung der Freigabe zu speichern. Beim erneuten Herstellen der Verbindung müssen die Anmeldeinformationen dann nicht mehr angegeben werden.
Informationen
sc
Der net-Befehl kann zwar auch auf die Dienste Einfluss nehmen, sc bietet aber weitere Funktionen. Mit dem sc-Befehl haben Sie weitreichenden Zugriff auf die Windows Services und Dienste. Sie können sich mit sc beispielsweise alle laufenden Dienste anzeigen lassen, deren Startverhalten ändern usw.
Sc query state= all listet z.B. alle installierten Dienste auf. Hier finden Sie auch die Zuordnung des internen Dienstnamens zur Bezeichnung in der Computerverwaltung. Der interne Name wird benötigt, wenn man Dienste mit net stop dienstname stoppen oder den Start eines Dienstes mit sc config dienst start= disabled verhindern möchte.
Getmac
Wer einen WLAN-Router betreibt, kann meist in einer MAC-Liste dort festlegen, welche Clients sich verbinden dürfen. Die MAC-Adresse des WLAN-Adapters erfahren Sie mit dem Befehl getmac. Die Ausgabe kann über Parameter auch formatiert werden.
Systeminfo
Mit dem simplen Befehl Systeminfo gibt die Shell relevante Informationen zum verwendeten System aus. Sie erfahren dort neben Angaben zum Netzwerk und dem verwendeten System auch Angaben zum Computer selbst sowie zu installierten Hotfixes. Die Ausgabe kann über Parameter auch formatiert werden und eignet sich zur Ausgabe in eine Datei (z.B. systeminfo /fo csv >c:\Logfiles\systeminfo.txt gibt eine CSV-Liste aus).
Tasklist
Mit dem Tasklist-Befehl bekommen Sie alle laufenden Prozesse mit der ProzessID (PID) in einer Liste angezeigt. Mit dem Parameter /M bekommen Sie auch die zu jedem Prozess geladenen DLLs angezeigt, mit /V sehen Sie weitere Informationen wie den Benutzerkontext des Prozesses.
Tasklist unterstützt auch Filter für Abfragen und formatierte Ausgaben. Zudem können Sie auch die Tasks von entfernten Rechnern im LAN abfragen oder mit taskkill beenden (siehe folgend).
Gerade in einer Batch-Datei kann es interessant sein, diese Ausgabe in eine Datei umzuleiten und diese Datei dann mittels find auf bestimmte Prozesse überprüfen zu lassen.
Über taskkill /im kann dann der gefundene Prozess abgeschossen werden.
Taskkill
Der Befehl Taskkill ergänzt den Befehl tasklist. Mit dem Parameter /PID ID können Sie einen Prozess unter Angabe der Prozess-ID beenden. Alternativ können Sie auch taskkill /im angeben, um den Prozess zu beenden.
Shutdown
Vor einigen Jahren gab es einen Virus, welcher den Rechner durch einen Programmfehler nach 30 Sekunden automatisch herunterfuhr. Mit dem Befehl shutdown –a können Sie ein Herunterfahren abbrechen oder mit shutdown –s herunterfahren. shutdown –r startet den Rechner neu. Der Parameter –f beendet die laufenden Programme ohne Rückfrage. Der Befehl Shutdown lässt sich auch auf andere Rechner im LAN anwenden. Die Syntax für einen Reboot eines Netzwerkrechners lautet dann shutdown –r –mflimmerkiste.
Assoc
Der Assoc-Befehl listet ohne Parameter alle registrierten Erweiterungen und den dazu gehörenden Dateityp auf. Wenn Sie den Assoc-Befehl mit einer Erweiterung angeben, erhalten Sie den Dateityp - z.B. Assoc .doc. Wenn Sie assoc mit dem Dateityp angeben, erhalten Sie die erweiterte Angabe zu dem Dateityp.
Driverquery
Mit Driverquery erhalten Sie eine Liste aller installierten Geräte und Systemtreiber. Mit dem Parameter /V wird die Auflistung noch etwas ausführlicher.
Laufwerksmanagement
Diskpart
Diskpart ist kein Befehl, sondern ein eigenständiges Programm zur Verwaltung von Datenträgern. Mit Diskpart können Sie Partitionen erstellen und löschen, Partitionen aktiv setzen, Basis-Datenträger in dynamische Datenträger konvertieren usw.
Unter Windows Vista können Sie mit Diskpart sogar Partitionen nachträglich in der Größe verkleinern.
Convert
Externe Festplatten sind häufig mit FAT32 formatiert. Mit dem convert-Befehl können Sie das Dateisystem z.B. auf NTFS ändern, ohne das Laufwerk neu formatieren oder die Daten darauf erst sichern zu müssen. Der Befehl convert e: /fs:ntfs konvertiert das Laufwerk E in das dem Dateisystem NTFS.
Defrag
Mit dem Befehl Defrag kann die interne Defragmentierung über die Shell gestartet werden. Der Parameter –a gibt den Grad der Fragmentierung an.-f erzwingt die Defragmentierung auch bei wenig verfügbarem Festplattenspeicher.
Subst
Der Subst-Befehl gerät langsam in Vergessenheit, ist aber gerade bei fehlgeleiteten Installern immer wieder eine Hilfe.
Mit dem Subst-Befehl können Sie einen beliebigen Pfad als weiteres Laufwerk in Windows einbinden.
Subst k: d:\temp bindet z.B. den Pfad d:\temp als virtuelles Laufwerk K ein. Die Anwendungsgebiete solcher Laufwerke sind ganz verschieden. In der Praxis kommt es aber immer wieder mal vor, dass ein Installer oder Uninstaller auf ein Laufwerk zugreifen will, welches gar nicht mehr existiert, aber vielleicht mal dar war. In diesen Fällen kann der Subst-Befehl helfen, indem man z.B. den Temp-Pfad einfach auf das gewünschte Laufwerk legt.
Mit Subst ohne Parameter bekommen Sie alle virtuellen Laufwerke angezeigt und der Parameter /d hebt die Zuordnung wieder auf.
Weitere Befehle in der Support.cab
Auf der Windows XP-CD befindet sich im Ordner SupportTools die Datei support.cab. Sie enthält weitere Hilfsprogramme, von denen einige auch in der Kommandozeile laufen. Man erkennt diese EXE-Dateien am "einfachen"-Programmicon. Kopieren Sie diese Dateien in einen Ordner, welcher von den Pfad-Angaben erfasst wird, damit Sie auf diese Befehle von jeder Stelle des Systems zugreifen können.
Eine Beschreibung der Support-Tools finden Sie in der Datei supptools.chm innerhalb der support.cab.
Der hier beschriebene Befehl xcacls.exe ist beispielsweise die erweiterte Variante von cacls.exe und bietet wesentlich mehr Möglichkeiten zur Verwaltung der Sicherheitseinstellungen.
Weitere Tools
Microsoft bietet noch weiteres Futter für CMD-Freunde, z.B. die Windows Server 2003 Resource Kit Tools. Sie beinhalten eine Sammlung von Tools - speziell für Administratoren - für die Registry, Active Directory und sonstiges. Viele der Befehle lassen sich auch unter Windows 2000, XP und Vista einsetzen. Download über WinTotal.
In der Toolsammlung ist auch Robocopy enthalten, welches sich auch unter Windows 2000 und XP nutzen lässt. Wir haben einen gesonderten Artikel zum Tool Robocopy auf WinTotal.
Ergänzende Downloads
Die Sysinternals-Tools wurden vor einiger Zeit von Microsoft übernommen. Auf der neuen Eingangsseite sind diese thematisch zusammengefasst und werden auch als Suite (nicht alle Programme enthalten) zum Download angeboten. Neben vielen Helferlein mit einer GUI finden sich auch Perlen für den Einsatz in der Kommandozeile: Link zu Microsoft Sysinternals.
Die GNU Utilities for Win32 erweitern die Kommandozeile von Windows um viele aus dem Unix-Umfeld bekannte Tools, darunter auch Befehle zum Packen und Entpacken von RAR- und ZIP-Archiven etc.
Damit die Befehle bequem aus der CMD gestartet werden können, sollten diese nach dem Entpacken aus dem Ordner usrlocalwbin in ein Systemverzeichnis kopiert oder optional der Pfad der GNU utilities in die Path-Anweisung mit aufgenommen werden.
Weiterführende Weblinks
- http://www.ss64.com/nt/
- http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/ntcmds.mspx?mfr=true
- http://de.wikibooks.org/wiki/Batch-Programmierung
- Microsoft Command-line Reference - A-Z List
Buchtipps
- Windows-Befehle für XP & Server 2003 - kurz & gut
- Windows Befehle für Vista und Server 2003
- Windows PowerShell - kurz & gut
- Windows 2003 Shell Scripting
- Scripting für Administratoren
- Microsoft Windows-Befehlszeilenverwaltung
PCDMicha
Erledigt
Matthias Berke
Bittet aktualisiert unbedingt Euren Link hier zur
Microsoft Command-line Reference – A-Z List
Den Befehl „append“ gibt es nicht mehr (unter Anderem ) ab WIN 10.
Aktuellster und korrekter Link ist
https://learn.microsoft.com/de-de/windows-server/administration/windows-commands/windows-commands
und dort
Befehlszeilenreferenz (für Batch)
https://learn.microsoft.com/de-de/windows-server/administration/windows-commands/windows-commands#command-line-reference-a-z
LG
Matthias Berke
Hasan
Tolle kurze Übersicht über cmd.exe…
Kleiner Fehler: An einer Stelle heißt es HLKM, was natürlich HKLM heißen muss. 😉
VG