Mobile-Menu

Konfigurieren, testen und optimieren Netzwerkeinstellungen mit der PowerShell steuern

Von Thomas Joos |

Netzwerkeinstellungen und -Optimierungen lassen sich in Windows 10/11 und Windows Server 2016/2019/2022 umfassend auch über die PowerShell steuern. Dabei bietet die PowerShell oft flexiblere Möglichkeiten, die auch schneller erreichbar sind. Wir zeigen die wichtigsten Cmdlets und Befehle dazu.

Anbieter zum Thema

Die PowerShell steht auf allen aktuellen Windows-Versionen zur Verfügung und kann auch die Netzwerk-Administration erleichtern.
Die PowerShell steht auf allen aktuellen Windows-Versionen zur Verfügung und kann auch die Netzwerk-Administration erleichtern.
(Bild: © maciek905 - stock.adobe.com)

Die PowerShell gehört bei allen aktuellen Windows-Versionen zum Lieferumfang. Das hat den Vorteil, dass Netzwerkeinstellungen auf Computern und auf Servern einheitlich mit der PowerShell gesetzt werden können. Auch das Skripten geht auf diesem Weg problemlos einheitlich mit allen aktuellen Windows- und Windows Server-Versionen.

Die meisten Befehle zum Konfigurieren der IP-Adressen lassen sich für IPv4 und IPv6 nutzen. Ohne Angabe eines Parameters, geht die PowerShell von einer Konfiguration mit IPv4 aus. Es ist aber auch möglich, IPv6-Adressen zu steuern. Dazu wird der Paramter "-AddressFamily" mit den Werten "-- IPv4" und "-- IPv6" verwendet.

Informationen zu den Netzwerkeinstellungen in der PowerShell abrufen

Um Netzwerkeinstellungen zu setzen, gehört das Cmdlet "Test-NetConnection" zu den wichtigsten Befehlen. Mit diesem Cmdlet lassen sich zunächst Tests durchführen, die für die Vergabe von IP-Adressen wichtig sind. Mit dem Cmdlet lässt sich zum Beispiel überprüfen, ob ein Computer oder ein Netzwerkgerät erreicht werden kann. Das funktioniert mit dem Namen, aber auch mit der IP-Adresse, zum Beispiel mit:

Test-NetConnection dc01

Die Ausgabe des Cmdlets ist ausführlicher als die herkömmliche Verwendung von "Ping". Zusätzlich ist es auch möglich eine Verbindung zu Ports aufzubauen und die Verbindung zu testen, zum Beispiel mit:

Test-NetConnection dc01 -port 135

Natürlich spielen auch die lokalen IP-Einstellungen eines Computers eine wichtige Rolle. Auch dazu stellt die PowerShell verschiedene Cmdlets zur Verfügung. Um zum Beispiel die Einstellungen der lokalen IP-Adressen anzuzeigen, steht der folgende Befehl zur Verfügung:

Get-NetIPAddress | ft

Der Befehl ermöglich weitere Parameter und das Weitergeben von Ausgaben an andere Cmdlets zum Sortieren der Informationen:

Get-NetIPAddress | Sort-Object -Property InterfaceIndex | Format-Table

Sollen bspw. die DNS-Server angezeigt werden, die auf einem Client konfiguriert sind, verwendet man "Get-DNSClientServerAddress". Aber auch die Einstellungen der Netzwerkadapter spielen an dieser Stelle eine wichtige Rolle:

Get-NetIPConfiguration -Verbose

Die Einstellungen der Netzwerkadapter lassen sich mit "Get-NetAdapter" anzeigen. Mehr zu diesem Thema ist im Beitrag "So testen Sie Verbindungen und verfolgen Routen nach" zu lesen.

IP-Adressen und DNS-Einstellungen konfigurieren

Um die IP-Adressen eines Computers zu steuern, steht das Cmdlet "New-NetIPAddress" zur Verfügung. Bei diesem Befehl lassen sich IP-Adressen und auch der Name der Netzwerkverbindung festlegen. Die Bezeichnungen der Adapter lassen sich mit den Befehlen oben in diesem Beitrag herausfinden. Auch das Gateway und das Subnetz können direkt mit einem Befehl gesetzt werden:

New-NetIPAddress -IPAddress 192.168.178.230 -InterfaceAlias "Ethernet" -DefaultGateway 192.168.178.1 -AddressFamily IPv4 -PrefixLength 24

In der PowerShell lassen sich IP-Adressen von einem Adapter aber auch entfernen. Der Befehl dazu sieht folgendermaßen aus:

Remove-NetIPAddress -IPAddress 192.168.0.1 -DefaultGateway 192.168.0.5

Bereits gesetzte IP-Einstellungen lassen sich auch anpassen. Dazu steht das Cmdlet "Set-NetIPAddress" zur Verfügung, zum Beispiel mit:

New-NetIPAddress -InterfaceIndex 12 -IPAddress 192.168.0.1Set-NetIPAddress -InterfaceIndex 12 -IPAddress 192.168.0.1 -PrefixLength 24

Um die Einstellungen der DNS-Server auf einem Client festzulegen wir der folgende Befehl verwendet. Dieser ermöglicht auch das Setzen mehrerer DNS-Server bei einem Client:

Set-DnsClientServerAddress -InterfaceAlias "Ethernet" -ServerAddresses (“192.168.178.220”,”192.168.178.230”)

Die Einstellungen von Netzwerkadaptern und die Einstellungen der Netzwerkverbindungen können in der PowerShell auch jederzeit angepasst werden. Neben dem Namen der Adapter kann an dieser Stelle auch die Index-Nummer des Interfaces verwendet werden. Dazu wird der Parameter "-InterfaceIndex" verwendet. Die Indexnumnmer der einzelnen Verbindungen ist wiederum mit dem Cmdlet "Get-NetIPAddress" zu finden. Will man zum Beispiel für den Adapter mit der Interfacenummer "3" DHCP deaktivieren, steht der folgende Befehl zur Verfügung:

Set-NetIPInterface -InterfaceIndex 3 -Dhcp Disabled

Mit dem Parameter "-Dhcp" kann für Adapter die DHCP-Funktion aktiviert ("enabled") oder deaktiviert ("disabled") werden. Der Befehl kann auch vor der Anpassung der IP-Adresse mit "New-NetIPAddress" erfolgen, um die Einstellungen besser skripten zu können.

IPv6-Einstellungen in der PowerShell konfigurieren

Um IPv6-Adressen in der PowerShell zu konfigurieren, sollte zunächst darauf geachtet werden, dass IPv6 auch für die Adapter aktiviert ist. Das lässt sich mit dem folgenden Befehl herausfinden:

Get-NetAdapterBinding -DisplayName *6*

Aktivieren lässt sich IPv6 für Adapter mit dem Cmdlet "Set-NetAdapterBinding" zum Beispiel mit:

Set-NetAdapterBinding -Name Ethernet -DisplayName *6* -Enabled $true

Um zum Beispiel eine IPv6-Adresse zu vergeben, verwendet man:

New-NetIPAddress -InterfaceIndex 1 -IPAddress ffff::2 -PrefixLength 64 -DefaultGateway ffff::1

Auch die DNS-Einstellungen für IPv6 lassen sich in der Powershell steuern, genauso wie bei IPv4:

Set-DnsClientServerAddress -InterfaceIndex 1 -ServerAddresses ("fd12:3456:ffff:1::1","fd12:3456:ffff:1::2")

Um IPv6 von einem Adapter zu entfernen, können folgende Befehle verwendet werden:

Disable-NetAdapterBinding -Name Wi-Fi -ComponentID ms_tcpip6Get-NetAdapterBinding -Name Ethernet -ComponentID ms_tcpip6

Auf dem gleichen Weg lässt sich auch IPv4 von einem Adapter entfernen, zum Beispiel mit dem folgenden Befehl:

Disable-NetAdapterBinding -Name "MyAdapter" -DisplayName "Internet Protocol Version 4 (TCP/IPv4)"

Neben der Bezeichnung kann aber auch hier wieder der Wert von "ComponentID" verwendet werden:

Disable-NetAdapterBinding -Name "MyAdapter" -ComponentID ms_tcpip

(ID:48016531)