Netsh – so verwalten Sie Netzwerke
Wer sich intensiver mit der Konfiguration von Netzwerken unter Windows auseinandersetzt, stößt früher oder später auf die Network Shell (Netsh). Hinter dem Begriff steht eine Schnittstelle zwischen Nutzer und Betriebssystem, die das Administrieren und Konfigurieren von lokalen und entfernten Netzwerkeinstellungen ermöglicht.
Das Spektrum an Einsatzmöglichkeiten reicht von Einstellungen für die Windows-Firewall über die LAN- und WLAN-Verwaltung bis hin zu IP- und Serverkonfigurationen. Zudem können netzgebundene Infrastrukturen gegen Angriffe von außen abgesichert werden. Mithilfe des Befehlszeilentools werden auch Probleme diagnostiziert und Reparaturen im Netzwerk durchgeführt. Ein großer Vorteil von Netsh: Netzwerkbezogene Verwaltungsaufgaben werden besonders schnell und komfortabel erledigt und lassen sich per Skript automatisieren.
Netsh-Befehle ausführen: Starten der Eingabeaufforderung
Um Netsh nutzen zu können, muss man sich auf die Ebene der Kommandozeile begeben. Dorthin gelangt man über das „Ausführen“-Menü („Run“), das Sie folgendermaßen aufrufen:
- Tastenkombination [Windows] + [R] drücken
- „cmd“ in das Eingabefeld eintragen (1)
- den „OK“-Button drücken (2)
Anschließend öffnet sich die Eingabeaufforderung. Mit der Eingabe von „netsh“ und einer anschließenden Bestätigung mit [Enter] wird das Dienstprogramm gestartet:
Werden Netsh-Befehle und -Skripte nicht ausgeführt oder sind tiefergehende Eingriffe in die Netzwerkkonfiguration geplant, sollte man die Network Shell mit Administratorrechten starten. Unter Windows 10 sind diese Schritte notwendig:
1. Rechtsklick auf Windows-Symbol links in der Taskleiste oder Tastenkombination [Windows] + [X] drücken.
2. Im sich öffnenden Kontextmenü den Eintrag „Eingabeaufforderung (Administrator)“ wählen:
Zu Netsh gehört die Programmdatei netsh.exe, die sich im Windows-Systemordner befindet (%windir%\system32). Ein Direktaufruf verkürzt die Eingabeprozedur von Netsh-Befehlen. Sie können dazu den Pfad C:\Windows\System32\netsh.exe in die Adresszeile des Windows-Explorers eingeben und auf [Enter] drücken. Im sich öffnenden Eingabefenster können Sie dann umgehend Netsh-Befehle eingeben.
Der Direktaufruf lässt sich mit einer Verknüpfung beschleunigen. Ist diese einmal angelegt, reicht zukünftig ein einziger Mausklick für den Start der Befehlseingabe:
1. Rechtsklick auf den Windows-Desktop. Auf den Menüeintrag „Neu“ klicken (1), dann im nächsten sich öffnenden Kontextmenü auf „Verknüpfung“ klicken (2):
2. Im Assistenten für Verknüpfungen den Pfad C:\Windows\System32\netsh.exe eingeben (1) und auf „Weiter“ klicken (2):
3. Dann sollten Sie einen aussagekräftigen Namen für die Verknüpfung vergeben (1), die anschließend nach einem Klick auf „Fertig stellen“ (2) auf dem Desktop abgelegt wird:
So ist Netsh aufgebaut
Das Dienstprogramm Netsh stellt eine umfangreiche Befehlssyntax zur Verfügung. Wer damit gezielt bestimmte Aufgaben erledigen möchte, muss sich mit dem spezifischen Aufbau der Network Shell vertraut machen. Die Struktur des Dienstprogramms basiert auf Kontexten, die verschiedene Verwaltungsebenen repräsentieren. Jeder Kontext deckt eine bestimmte Netzwerk-Funktionalität ab (z. B. IP-, LAN- und Firewall-Konfiguration). Für die kontextgebundene Interaktion mit anderen Windows-Komponenten nutzt das Hilfsprogramm die Dateien der Dynamic-Link Library (DLL). Netsh greift etwa auf die Dhcpmon.dll zu, um DHCP-Einstellungen zu ändern und zu verwalten.
Für die Nutzung eines Kontexts muss zu diesem in der Eingabeaufforderung von Windows gewechselt werden. In den Kontext „LAN-Verwaltung“ gelangt man beispielsweise folgendermaßen:
1. Nach Aufruf der Eingabeaufforderung „netsh“ eingeben und mit [Enter] bestätigen.
2. Dann „lan“ eingeben und mit [Enter] bestätigen.
3. Nun zeigt die Eingabeaufforderung den Kontextwechsel an: netsh lan>
Haben Sie in den Kontext „LAN“ gewechselt, stehen kontextspezifische und kontextübergreifende Befehle zur Verfügung. Zu den kontextspezifischen Befehlen zählt beispielsweise „set“ (konfiguriert Einstellungen auf Schnittstellen). Ein Beispiel für einen grundsätzlichen und kontextübergreifenden Netsh-Befehl ist der Hilfebefehl „/?“, der in jedem Bereich die verfügbaren Unterkontexte und -befehle auflistet. Im Bereich „LAN“ wird nach dessen Eingabe folgende Liste mit kontextspezifischen und -übergreifenden Befehlen angezeigt:
Wechselt man beispielsweise in den Firewall-Kontext, sieht die dazugehörige Befehlsreferenz so aus:
Neben der kontextgebundenen Struktur gibt es noch weitere Besonderheiten bei der Bedienung. Netsh kann entweder im nichtinteraktiven oder im interaktiven Modus genutzt werden. Im nichtinteraktiven Modus werden etwa wichtige Netzwerkeinstellungen in eine Textdatei exportiert und für eine spätere Wiederherstellung wieder importiert.
Im interaktiven Modus können beispielsweise direkte Anfragen gestartet werden. Gibt man „netsh interface ip show address“ ein, wird die aktuelle IP-Adresse des Computers angezeigt. Die Nutzung des interaktiven Modus kann online oder offline erfolgen. Erstgenannter Modus setzt Operationen direkt um, der Offlinemodus speichert Aktionen und führt sie später aus. Die Aktivierung der hinterlegten Aktionen erfolgt zum gewünschten Zeitpunkt mit dem Netsh-Befehl „commit“.
Die Netsh-Befehle und ihre Kontexte
Wir haben die wichtigsten Netsh-Befehle mit einer kurzen Erläuterung der Kontexte in der folgenden Übersicht zusammengestellt. Handelt es sich um einen allgemeinen kontextübergreifenden Befehl, fehlen weitere Erläuterungen in der rechten Spalte. Je nach Betriebssystemversion und Rolle im Netzwerk (Client oder Server) können die zur Verfügung stehenden Befehle punktuell abweichen. Die Befehlsausgabe bei einem Computer mit Windows Server 2016 Datacenter lautet:
Befehl | Umsetzung | Netsh-Kontext verwaltet |
.. | Wechsel zu einer Kontextebene höher | |
? | Zeigt eine Liste der Befehle an | |
abort | Verwirft Änderungen, die im Offlinemodus vorgenommen wurden | |
add | Fügt einen Konfigurationseintrag zur Liste hinzu | |
advfirewall | Wechsel zum „netsh advfirewall“-Kontext | Firewall (Richtlinien und Konfiguration) |
alias | Fügt einen Alias hinzu | |
branchcache | Wechsel zum „netsh branchcache“-Kontext | Einstellung zum Branchcache |
bridge | Wechsel zum „netsh bridge“-Kontext | Netzwerkbrücke |
bye | Beendet das Programm | |
commit | Überträgt Änderungen, die im Offlinemodus vorgenommen wurden | |
delete | Löscht einen Konfigurationseintrag aus der Liste der Einträge | |
dhcpclient | Wechsel zum „netsh dhcpclient“-Kontext | DHCP-Client |
dnsclient | Wechsel zum „netsh dnsclient“-Kontext | DNS-Clienteinstellungen |
dump | Zeigt ein Konfigurationsskript an | |
exec | Führt eine Skriptdatei aus | |
exit | Beendet das Programm | |
firewall | Wechsel zum „netsh firewall“-Kontext | Firewall (Richtlinien und Konfiguration) |
help | Zeigt eine Liste der Befehle an | |
http | Wechsel zum „netsh http“-Kontext | http-Servertreiber (http.sys) |
interface | Wechsel zum „netsh interface“-Kontext | IP-Konfiguration (v4, v6) |
ipsec | Wechsel zum „netsh ipsec“-Kontext | IPSec-Richtlinien |
ipsecdosprotection | Wechsel zum „netsh ipsecdosprotection“-Kontext | Schutz vor IPSEC-Denial-of-Service-Angriffen |
lan | Wechsel zum „netsh lan“-Kontext | drahtgebundene Netzwerkschnittstellen |
namespace | Wechsel zum „netsh namespace“-Kontext | DNS-Clientrichtlinien |
netio | Wechsel zum „netsh netio“-Kontext | Bindungsfilter |
offline | Setzt den aktuellen Modus auf offline | |
online | Setzt den aktuellen Modus auf online | |
popd | Wechsel zum durch pushd im Stapel gespeicherten Kontext | |
pushd | Überträgt den aktuellen Kontext auf den Stapel | |
quit | Beendet das Programm | |
ras | Wechsel zum „netsh ras“-Kontext | Remote-Access-Server |
rpc | Wechsel zum „netsh rpc“-Kontext | Konfiguration RPC-Dienst |
set | Aktualisiert Konfigurationseinstellungen | |
show | Zeigt Informationen an |
Syntaxparameter für Netsh – was bedeuten sie?
Um konkrete Aktionen und Aufgaben umzusetzen, können Netsh-Befehle mit optionalen Parametern versehen werden. Das Syntaxschema für die Kombination von Netsh-Befehlen und -Parametern lautet:
netsh [-a Aliasdatei] [-c Kontext] [-r Remotecomputer] [-u [Domänenname\]Benutzername] [-p Kennwort | *] [Befehl | -f Skriptdatei]
Die folgenden Parameter sind allesamt optional, können also je nach Bedarf ergänzt und verwendet werden:
-a | Rückkehr zur Netsh-Eingabeaufforderung nach Ausführung der Aliasdatei |
Aliasdatei (engl.: AliasFile) | Gibt den Namen der Textdatei an, die mindestens einen Netsh-Befehl enthält |
-c | Wechsel in den angegebenen Netsh-Kontext |
Kontext (engl.: Context) | Platzhalter für den einzugebenden Kontext (z. B. WLAN) |
-r | Veranlasst, dass der Befehl auf einem entfernten Computer (Remotecomputer) ausgeführt wird; dort muss der Remoteregistrierungsdienst ausgeführt werden. |
Remotecomputer (engl.: RemoteComputer) | Name des Remotecomputers, der konfiguriert wird |
-u | Zeigt an, dass der Netsh-Befehl unter einem Benutzerkonto ausgeführt wird |
Domänenname\ (engl.: DomainName\) | Bezeichnet die Benutzerkonto-Domäne (Standardwert ist die lokale Domäne, wenn kein spezieller Domänenname angegeben ist) |
Benutzername (engl.: UserName) | Namen des Benutzerkontos |
-p | Ein Kennwort für das Benutzerkonto kann eingegeben werden. |
Kennwort (engl: Password) | Gibt das Kennwort für das Benutzerkonto an, das man mit -u Benutzername angegeben hat |
Netsh-Befehl (engl.: NetshCommand) | Auszuführender Netsh-Befehl |
-f | Beendet Netsh nach Ausführung der Skriptdatei |
Skriptdatei (engl.: ScriptFile) | Auszuführendes Skript |
Zurücksetzen des TCP/IP-Stacks mit Netsh
Eine häufige Anwendung von Netsh-Befehlen ist das Zurücksetzen des TCP/IP-Stacks, der für den Austausch von Datenpaketen in Netzwerken sorgt. Bei Netzwerk- und Internetproblemen kann diese Maßnahme, die z. B. defekte oder falsch eingerichtete TCP/IP-Protokolle entfernt, sinnvoll sein. Mit folgendem Reparaturbefehl wird ein Reset durchgeführt und TCP/IPv4 neu installiert:
netsh int ip reset
Eine Protokolldatei, die die erfolgten Änderungen dokumentiert, kann zusätzlich angelegt werden:
netsh int ip reset c:\tcpipreset.txt
Nach Durchführung des Resets muss der Computer neu gestartet werden.
Netsh-Befehle können auch in Batch-Dateien (*.bat) verwendet werden, um Routineaufgaben zu automatisieren. In unserem Ratgeber „Batch-Datei erstellen“ erfahren Sie mehr.
Im- und Export von Netzwerkeinstellungen
Mit Netsh können Sie auch aktuelle Netzwerkeinstellungen in eine einfache Textdatei exportieren. Bei Netzwerkproblemen wird dann eine funktionierende und fehlerfreie Konfiguration zügig wiederhergestellt.
Im ersten Schritt (Export) wird die Netzwerkkonfiguration ausgelesen, in eine Textdatei geschrieben (netcnfig.txt) und im Beispielverzeichnis „Netzwerkkonfiguration“ auf dem Laufwerk C:\ hinterlegt. Den Ordner „Netzwerkkonfiguration“ müssen Sie vor dem erstmaligen Export manuell auf dem Ziellaufwerk anlegen (das geschieht nicht automatisch durch Netsh). Dann wechseln Sie in die Eingabeaufforderung und geben folgenden Code ein:
netsh -c interface dump>c:\Netzwerkkonfiguration\netcnfig.txt
Für den späteren Import der Einstellungen ist die folgende Befehlseingabe erforderlich:
netsh -f c:\Netzwerkkonfiguration\netcnfig.txt
Windows 10 unterstützt auch bei der Eingabeaufforderung Copy-and-Paste. Sie können die Befehlssyntax einfach aus diesem Artikel kopieren und anschließend ins Eingabefenster einfügen.
IP-Konfiguration mit Netsh
Ein verbreiteter Anwendungsfall von Netsh ist die Änderung von IP-Einstellungen. Soll ein Rechner im Netzwerk keine statische, sondern eine automatisch zugewiesene IP-Adresse erhalten, setzt man dafür das Dynamic Host Configuration Protocol (DHCP) ein. Dieses Kommunikationsprotokoll weist Clients in einem Netzwerk automatisch IP-Adressen und weitere erforderliche Konfigurationsdaten zu. Für den Vorgang sind mehrere Schritte nötig:
Im ersten Schritt werden die aktuellen Einstellungen und Namen der verfügbaren Netzwerkadapter abgerufen:
netsh interface ipv4 show interface
Nun wird ein bestimmter LAN-Adapter (in diesem Beispiel: Ethernet) als Adressat für die IP-Zuweisung über DHCP bestimmt:
netsh interface ipv4 set address name="Ethernet" source=dhcp
Danach übernimmt DHCP die dynamische Verwaltung für Netzwerkeinstellungen, die den Ethernet-Adapter betreffen.
Windows-Firewall ein- und ausschalten
Wenn Sie die Windows-Firewall aktivieren oder deaktivieren wollen, reicht eine einfache Netsh-Befehlssyntax aus. Eine Firewall aktivieren Sie wie folgt:
netsh firewall set opmode enable
Die Deaktivierung der Firewall geschieht mit folgender Befehlszeile:
netsh firewall set opmode disable
In einigen Kontexten empfiehlt Windows Alternativen zur Netzwerkadministration mit Netsh. Häufiger genannt wird dabei die Windows PowerShell, zu der Sie eine Einführung in unserem Digital Guide finden.