Tags: PowerShell, Netzwerk, DHCP, DNS
Möchte man die IP-Einstellungen auf der Kommandozeile ändern, dann bietet PowerShell die nötigen Cmdlets, um zwischen einer statischen und dynamisch zugewiesenen Konfiguration zu wechseln sowie die DNS-Server und das Gateway festzulegen. Der Unterschied zwischen New-NetIPAddress und Set-NetIPAddress ist dabei nicht auf Anhieb klar.
Wenn man die IP-Einstellungen auf Server Core ändern möchte, dann bietet sich neben dem Klassiker netsh.exe vor allem PowerShell an. Aber auch auf Systemen mit GUI erweist sich die Kommandozeile meist als effizienter.
Zudem bietet sich die Möglichkeit, diese Aufgabe über eine Remote-Session auf einem entfernten Rechner zu erledigen, wobei nach Änderung der Einstellungen die Verbindung abbrechen wird.
Adaptereinstellungen ermitteln
Für die Änderung der IP-Konfiguration benötigt man eine PowerShell-Sitzung mit erhöhten Rechten. Dort lässt man sich die Netzwerkadapter anzeigen, so dass man in der Folge jenen wählen kann, dessen Einstellungen man ändern möchte:
Get-NetAdapter | Format-List
Wichtig ist dort die Eigenschaft InterfaceIndex, weil man diese in den folgenden Kommandos für die Identifizierung des Adapters benötigt.
Nun kann man die aktuelle Konfiguration des betreffenden Interfaces abfragen:
Get-NetIPConfiguration -InterfaceIndex 14 -Detailed
Neben den IPv4- und IPv6-Adressen für den Adapter, das konfigurierte Standard-Gateway und die DNS-Server kann man anhand von NetIPv6Interface.DHCP erkennen, ob die Konfiguration über DHCP bezogen wird.
Von DHCP auf statisch umstellen
Möchte man von DHCP zu statisch wechseln, dann gibt man
Set-NetIPInterface -InterfaceIndex <If-Nummer> -Dhcp Disabled
ein. Dies deaktiviert DHCP für IPv4 und IPv6. Möchte man den Befehl nur auf eines der beiden Protokolle anwenden, dann ergänzt man das Kommando um den Parameter AddressFamily:
Set-NetIPInterface -InterfaceIndex <If-Nummer> -Dhcp Disabled `
-AddressFamily IPv4
Auf DHCP wechseln
Ist umgekehrt eine statische Adresse zugewiesen, dann kann man zurück auf DHCP wechseln, indem man den Parameter Dhcp auf Enabled setzt:
Set-NetIPInterface -InterfaceIndex <If-Nummer> -Dhcp Enabled `
-AddressFamily IPv4
Allerdings wird man dabei feststellen, dass in der GUI für die Netzwerkeinstellungen das Standard-Gateway weiterhin vorhanden und ausgegraut ist, so dass man es nicht entfernen kann.
Mit PowerShell kann man es aber dann so löschen:
Get-NetIPAddress -InterfaceIndex <Nummer> -AddressFamily IPv4 |
Remove-NetRoute
Statische IP zuweisen
Wenn man DHCP deaktiviert hat, kann man dem Adapter mit New-NetIPAddress statische Werte zuweisen:
New-NetIPAddress -InterfaceIndex 14 -IPAddress 192.168.0.33 `
-AddressFamily IPv4 -PrefixLength 24 -DefaultGateway 192.168.0.1
Würde man hier stattdessen Set-NetIPAddress verwenden, dann käme es zu einer Fehlermeldung, weil das Interface noch keine IP-Adresse hat.
Dieses Cmdlet kann nur eine bestehende statische Konfiguration ändern, wobei es weitgehend die gleichen Parameter unterstützt wie New-NetIPAddress.
Ausgenommen davon ist DefaultGateway, so dass man das Standard-Gateway damit nicht mehr ändern kann.
DNS-Server festlegen
Schließlich ist für den Eintrag des bzw. der DNS-Server noch ein weiteres Cmdlet namens Set-DnsClientServerAddress zuständig:
Set-DnsClientServerAddress -InterfaceIndex 14 `
-ServerAddresses ("192.168.0.10", "8.8.8.8")
Möchte man mehrere DNS-Server eintragen, dann übergibt man diese dem Parameter ServerAddresses als Array.
Abfragen kann man die konfigurierten DNS-Server anschließend über Get-DnsClientServerAddress.
Wenn man irgendwann, wie oben beschrieben, wieder auf DHCP wechseln möchte, dann bleiben die statisch konfigurierten DNS-Server erhalten. Um diese zu entfernen, gibt man folgenden Befehl ein:
Set-DnsClientServerAddress -InterfaceIndex 14 -ResetServerAddresses
Zusammenfassung
Wenn man den Interface-Index mit Get-NetAdapter herausgefunden hat, dann kann man mit Set-NetIPInterface zwischen einer statischen und einer dynamisch zugewiesenen IP-Konfiguration wechseln.
Stellt man auf eine statische Einstellung um, dann kann man dem Adapter mit New-NetIPAddress eine IP zuweisen, und zwar für IPv4 und IPv6 gleichermaßen. Die Konfiguration ändern kann man dann mit Set-NetIPAddress, allerdings nicht das Default Gateway.
Geht man den umgekehrten Weg von statisch zu DHCP, dann muss man das Gateway mit Remove-NetRoute separat entfernen.
Die DNS-Server kann man unabhängig von einer statischen oder dynamischen IP-Adresse immer mit Set-DnsClientServerAddress statisch zuweisen. Das Cmdlet kann die DNS-Konfiguration auch wieder entfernen.
Täglich Know-how für IT-Pros mit unserem Newsletter
Verwandte Beiträge
- Alte DNS-Einträge automatisch löschen unter Windows Server
- IP-Management: Tools von Solarwind identifizieren Adresskonflikte
- Zwischen DHCP und festen IP-Adressen wechseln: Alternative Konfiguration, freie Tools
- IP-Einstellungen für ESXi in DNS und DHCP konfigurieren
- IPAM unter Windows Server 2012 R2 installieren
Weitere Links