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:

  1. Tastenkombination [Windows] + [R] drücken
  2. „cmd“ in das Eingabefeld eintragen (1)
  3. 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.

Tipp

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
Tipp

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
Hinweis

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.