IP-Adresse und DNS-Server mit PowerShell ändern


    Tags: , , ,

    WAN-OptimierungMöchte man die IP-Einstellungen auf der Kommando­zeile ändern, dann bietet PowerShell die nötigen Cmdlets, um zwischen einer statischen und dyna­misch zugewiesenen Konfi­guration zu wechseln sowie die DNS-Server und das Gateway festzu­legen. Der Unter­schied 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.

    Interface-Index des Adapters mit PowerShell anzeigen

    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 Netzwerk­einstellungen das Standard-Gateway weiterhin vorhanden und ausgegraut ist, so dass man es nicht entfernen kann.

    Nach dem Wechsel von einer statischen IP-Adresse zu DHCP bleibt das Default Gateway zurück.

    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.

    DHCP deaktivierten und eine statische IP-Konfiguration zuweisen

    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.

    DNS-Server für das angegebene Interface konfigurieren

    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

    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 Wolfgang Sommergut

    Wolfgang Sommergut hat lang­jährige Erfahrung als Fach­autor, Berater und Kon­ferenz­sprecher zu ver­schie­denen Themen der IT. Da­ne­ben war er als System­ad­mi­ni­stra­tor und Con­sultant tätig.
    // Kontakt: E-Mail, XING, LinkedIn //

    Verwandte Beiträge

    Weitere Links