netsh: Die wichtigsten Befehle zur Netzwerkkonfiguration


    Tags: , ,

    netsh.exe kann als interaktive Shell oder als Kommando, sowohl lokal als auch remote verwendet werdennetsh.exe (Network Shell) ist eines der mächtigsten Hilfsprogramme unter Windows. Mit ihm lassen sich alle Aspekte der Windows-Netzwerkkonfiguration per Kommandozeile erledigen, seit Vista/Windows Server 2008 auch die für Drahtlos-Netzwerke (WLAN). netsh.exe kann sich auch mit entfernten Rechnern verbinden und deren Netzwerk­ein­stellungen komplett remote konfigurieren. Während es unter Windows seitens Microsoft in der Vergangenheit prinzipiell nie so wichtig war, die Konfiguration per Kommandozeile durchführen zu können, kommt dem Tool mit Windows Server Core eine neue Bedeutung zu, da dort die GUI – oft auch für grundlegende Einstellungen – nun einmal fehlt.

    netsh.exe als interaktive Shell

    Ruft man netsh.exe ohne verknüpftes Kommando auf, landet man in der interaktiven Shell, was man am Prompt „netsh>“ erkennt. Hat man sich mittels des Parameters -r mit einem Remote-Computer verbunden, erscheint dessen Namen davor in eckigen Klammern. Verbindungen werden nicht gespeichert; beendet man eine Remote-Sitzung von netsh.exe, muss man also beim nächsten Mal die Zielmaschine erneut als Parameter eingeben, die Voreinstellung ist immer die Konfiguration des lokalen PCs. Will man dies innerhalb von netsh.exe ändern, dient dazu der Befehl

    set machine ‹Rechnername›

    netsh.exe kann als interaktive Shell oder als Kommando, sowohl lokal als auch remote verwendet werdenLässt man hier den Rechnernamen weg, kehrt man wieder zur Konfiguration des lokalen Rechners zurück. netsh.exe selbst dient nur als Host-Anwendung für diverse DLLs, die für die eigentliche Netzwerkkonfiguration zuständig sind. Diese werden innerhalb von netsh.exe jeweils als „Kontext“ bezeichnet, es gibt also jeweils eine DLL und damit einen Kontext etwa für die IP-Konfiguration, für die Firewall-Konfiguration, oder jeweils einen für DHCP- und DNS-Client. In einen solchen Kontext wechselt man, indem man ihn am Prompt eintippt; der Unterschied zu einem normalen Befehl wird jeweils dadurch sichtbar, dass der Prompt den aktuellen Kontext anzeigt. Per

    show helper

    kann man sich alle anzeigen lassen und welche DLL jeweils dazugehört. Gelingt der Wechsel in einen Kontext nicht, liegt das zumeist daran, dass die entsprechende Komponente nicht installiert ist: So gehört WLAN auf den Client-Betriebssystemen zur Standardausstattung, auf dem Windows Server ist es ein extra zu installierendes Feature.

    Rekursiver Aufruf der Hilfe

    Durch die Eingabe von „?“ erfährt man jeweils, welche Befehle – oder Unter-Kontexte – innerhalb eines Kontexts zur Verfügung stehen. Von einem Unterkontext „aufwärts“ wechselt man analog zur Bewegung in einem Verzeichnisbaum mittels des cd-Befehls per „..“, nötig ist dies jedoch nur, um von dort aus per „?“ die Namen der verfügbaren Kontexte ausgeben zu lassen. Weiß man diese auswendig, kann man durch Eingabe des Namens jeweils direkt zwischen den Kontexten wechseln.

    Etwas anders ist es, wenn man in einem bestimmten Kontext nur ein Kommando absetzen und ihn gleich wieder verlassen will. Dies kann man, indem man Kontext und Kommando mit einem Leerzeichen getrennt direkt hintereinander schreibt. Hier sind nur Kontexte möglich, in die sich direkt unterhalb in der Hierarchie befinden, also nach Eingabe von „?“ als mögliche Sub-Kontexte in der Liste unter „Befehle in diesem Kontext“ aufgeführt sind.

    Eine komplette Übersicht aller Kontexte und der darin möglichen Befehle bietet Microsoft im TechNet. Diese Referenz enthält einige anschauliche Beispiele und ist weitaus hilfreicher als die jeweilige Kurzhilfe per „?“ alleine.

    Aliase für häufige Befehle

    Obwohl netsh.exe nur ein DLL-Host ist, bietet die Shell als solche einige sehr nützliche Funktionen: So können etwa Aliase vergeben werden, etwa um häufig verwendete Befehle abzukürzen. Eine weitere beachtenswerte Funktion ist die, das Programm mit dem gleichnamigen Befehl „offline“ schalten zu können. Änderungen werden dann nicht mehr unmittelbar appliziert, erst nach einem

    commit

    oder

    online

    Mit

    show mode

    Kann man sich den gegenwärtigen Modus des Programmes anzeigen lassen.

    netsh.exe als Kommando

    Übergibt man netsh.exe einen Kontext zusammen mit einem vollständigen Befehl als Parameter, so wechselt es nicht in den Shell-Modus, sondern führt nur den Befehl in dem entsprechenden Kontext aus und beendet sich dann. Alternativ kann man nach dem Parameter -f ein Script übergeben, um Konfigurationsaufgaben zu automatisieren, die mehrere Zeilen erfordern. Befehle zum Verlassen des Programmes wie etwa exit oder bye sind in einem solchen Script nicht erforderlich; das Programm beendet sich nach Abarbeitung des Scripts immer selbst.

    Täglich Know-how für IT-Pros mit unserem Newsletter

    Wir ver­wenden Ihre Mail-Adresse nur für den Ver­sand der News­letter.
    Es erfolgt keine per­sonen­be­zogene Auswertung.

    Bild von Andreas Kroschel
    Andreas Kroschel ist Buchautor und Verfasser von Fachartikeln zu Hardware, Windows und Linux sowie IT-Sicherheit. Er arbeitete als Redakteur unter anderem für BYTE Deutschland und die PC-Welt.

    Verwandte Beiträge

    Weitere Links