Netwerkinstellingen configureren in Windows met PowerShell: IP-adres, DNS, standaardgateway en statische routes instellen

Het beheren van netwerkinstellingen via PowerShell is niet langer alleen voor de doorgewinterde systeembeheerders; het is eigenlijk essentieel, vooral als je met meerdere machines werkt of processen wilt automatiseren. Ik heb me suf gepiekerd met het wijzigen van IP-adressen of het schakelen tussen statische en DHCP-adressen op verschillende Windows-systemen, en eerlijk gezegd maakt het gebruik van PowerShell-cmdlets het een stuk minder frustrerend. Bovendien, als de grafische interface hapert of als verborgen netwerkadapters voor verwarring zorgen, kunnen deze commando’s je helpen alles onder controle te krijgen. Houd er wel rekening mee dat je in sommige configuraties, met name bij Hyper-V of VPN-adapters, mogelijk extra parameters moet toevoegen of PowerShell als beheerder moet uitvoeren. Verwacht dat er tijdens het proces IP-adressen, NIC-namen of interfaces worden weergegeven. Hoe dan ook, dit is niet altijd even intuïtief – Windows kan soms vreemd doen met netwerkconfiguraties – maar als je eenmaal de juiste commando’s doorhebt, gaat het vrij soepel.

Hoe netwerkadapterinstellingen in Windows te herstellen met PowerShell

Netwerkadapterinstellingen beheren via PowerShell

Het opsommen van alle netwerkadapters is de eerste stap. Voer het volgende commando uit:

Get-NetAdapter

Dit toont de naam, status (zoals ‘Actief’ of ‘Niet actief’), MAC-adres en snelheid. Ik heb gevallen gezien waarbij verborgen of virtuele netwerkadapters problemen veroorzaakten, dus om alle mogelijke adapters mee te nemen, kunt u het volgende commando uitvoeren:

Get-NetAdapter –IncludeHidden

Dit toont alle verbindingen, zelfs die Windows normaal gesproken verbergt. Handig als VPN’s of virtuele switches je in de war brengen. Wanneer je de naam ziet van de interface die je wilt aanpassen, zoals “Ethernet0” of “Wi-Fi”, kun je deze in- of uitschakelen.

Enable-NetAdapter -Name Ethernet0 Disable-NetAdapter -Name Ethernet0

Soms is het nodig om adapters een andere naam te geven voor de duidelijkheid:

Rename-NetAdapter -Name Ethernet0 -NewName LAN

En als je problemen met VPN of VLAN wilt oplossen, kijk dan naar de VlanID:

Get-NetAdapter | ft Name, Status, Linkspeed, VlanID

De huidige IP-instellingen opvragen — zodat u weet wat er speelt.

Als je last hebt van een instabiele wifi- of bekabelde verbinding en je je afvraagt ​​welke bandbreedte aan welke bandbreedte is toegewezen, dan geeft dit commando je de nodige informatie:

Get-NetIPConfiguration -InterfaceAlias Ethernet0

Voor meer gedetailleerde informatie zoals DHCP-status, standaardgateway en daadwerkelijk toegewezen IP-adressen:

Get-NetIPConfiguration -InterfaceAlias Ethernet0 -Detailed

Het kopiëren en plakken van het IP-adres is gebruikelijk, vooral bij het instellen van statische IP-adressen. Om alleen het IPv4-adres te zien:

(Get-NetAdapter -Name Ethernet0 | Get-NetIPAddress).IPv4Address

Een vast IP-adres instellen — omdat DHCP soms waardeloos is

Om je netwerkadapter een statisch IP-adres en een standaardgateway te geven, voer je een commando uit zoals:

Get-NetAdapter -Name Ethernet0 | New-NetIPAddress -IPAddress 192.168.2.50 -DefaultGateway 192.168.2.1 -PrefixLength 24

Of, om het leesbaarder te maken, definieer een reeks parameters en geef ze allemaal tegelijk door:

$ipParams = @{ InterfaceIndex = 8; IPAddress = "192.168.2.50"; PrefixLength = 24; AddressFamily = "IPv4" } New-NetIPAddress @ipParams

Wil je een secundair IP-adres toevoegen? Voer dan het volgende commando uit:

Set-NetIPAddress -InterfaceAlias Ethernet0 -IPAddress 192.168.2.90

Als u wilt stoppen met het gebruik van DHCP en uw IP-adres handmatig wilt instellen:

Set-NetIPInterface -InterfaceAlias Ethernet0 -Dhcp Disabled

En verwijder indien nodig het statische IP-adres (bijvoorbeeld als u terugschakelt naar DHCP):

Remove-NetIPAddress -IPAddress "192.168.2.50"

DNS-serverinstellingen wijzigen — Omdat de standaardinstellingen traag of onjuist kunnen zijn.

Als u specifieke DNS-servers wilt opgeven, voert u het volgende commando uit:

Set-DNSClientServerAddress –InterfaceIndex 8 –ServerAddresses 8.8.8.8, 8.8.4.4

Hiermee worden bijvoorbeeld de DNS-servers van Google ingesteld. Om het flexibeler te maken:

$dnsParams = @{ InterfaceIndex = 8; ServerAddresses = ("8.8.8.8", "8.8.4.4") } Set-DnsClientServerAddress @dnsParams

En als je alle DNS-instellingen wilt wissen en wilt terugkeren naar automatische DNS via DHCP, doe dan het volgende:

Set-DnsClientServerAddress –InterfaceIndex 8 –ResetServerAddresses

Vergeet niet de DNS-cache te legen na het aanbrengen van wijzigingen, vooral als u problemen aan het oplossen bent:

Clear-DnsClientCache

Het beheren van routeringstabellen: ervoor zorgen dat verkeer de juiste route vindt.

Wil je je huidige routes bekijken? Gebruik:

Get-NetRoute

Concreet ziet de standaardroute (de ‘laatste optie’) er als volgt uit:

Get-NetAdapter -Physical | ? {$_. Status -eq "Up"} | Get-NetRoute | where DestinationPrefix -eq "0.0.0.0/0"

Moet je een nieuwe route toevoegen, bijvoorbeeld voor een VPN of een speciaal netwerk? Voer dan het volgende commando uit:

New-NetRoute -DestinationPrefix "0.0.0.0/0" -NextHop 192.168.2.2 -InterfaceIndex 8

Wil je een route verwijderen? Voer dan het volgende commando uit:

Remove-NetRoute -NextHop 192.168.0.1 -Confirm:$False

Terugschakelen naar DHCP — Omdat statische IP soms té statisch is.

Als je configuratie een rommel is of als je gewoon wilt dat Windows weer automatisch een IP-adres verkrijgt, doe dan het volgende:

Set-NetIPInterface -InterfaceAlias Ethernet0 -Dhcp Enabled

En om de DNS-instellingen te wissen:

Set-DnsClientServerAddress –InterfaceAlias Ethernet0 -ResetServerAddresses

Om alles echt weer online te krijgen en een nieuw IP-adres via DHCP te verkrijgen:

Restart-NetAdapter -InterfaceAlias Ethernet0

Als er nog een standaardgateway actief is, moet u deze mogelijk handmatig verwijderen met:

Remove-NetRoute -DestinationPrefix 0.0.0.0/0 -NextHop 192.168.2.1 -Confirm:$False

In geval van nood kan een script worden uitgevoerd om de IPv4-instellingen voor alle adapters volledig te resetten, wat best handig is:

$adapters = Get-NetAdapter | ? {$_. Status -eq "Up"} $adapters | ForEach-Object { $interface = $_ $iface = $interface | Get-NetIPInterface -AddressFamily IPv4 if ($iface. Dhcp -eq 'Disabled') { $interface | Remove-NetRoute -Confirm:$False $interface | Set-NetIPInterface -Dhcp Enabled Set-DnsClientServerAddress -InterfaceAlias $interface. Name -ResetServerAddresses } }

Instellingen op meerdere computers op afstand wijzigen

Dit is iets complexer, maar enorm handig wanneer u configuratiewijzigingen naar een groot aantal servers of werkstations moet doorvoeren. U kunt dit doen via scripts die gebruikmaken van WinRM of PowerShell-remotebeheer. Om bijvoorbeeld de DNS op alle Windows Server-computers in een Active Directory-organisatie-eenheid bij te werken, voert u een script uit zoals:

$Servers = Get-ADComputer -SearchBase 'OU=Servers, OU=Berlin, OU=DE, DC=woshub, DC=cpm' -Filter '(OperatingSystem -like "Windows Server*")' | Sort-Object Name ForEach ($Server in $Servers) { Invoke-Command -ComputerName $Server. Name -ScriptBlock { $newDns = @('192.168.2.11', '8.8.8.8') $adapters = Get-WmiObject Win32_NetworkAdapterConfiguration | Where-Object {$_. DHCPEnabled -ne $true} $adapters | ForEach-Object { $_. SetDNSServerSearchOrder($newDns) | Out-Null } } }

Ja, het is een beetje complex, maar het werkt. Zorg er wel voor dat WinRM is ingeschakeld op uw externe machines en dat uw beheerdersrechten correct zijn ingesteld. In sommige gevallen moet u mogelijk het uitvoeringsbeleid aanpassen of PowerShell als beheerder uitvoeren om alles soepel te laten verlopen.

Al met al is het grootste probleem soms dat de netwerkstack van Windows zelf problemen geeft of adapters verbergt waarvan je het bestaan ​​niet eens wist. Deze commando’s hebben geholpen om te verduidelijken wat wat is, en het instellen van statische of DHCP-IP-adressen is een stuk eenvoudiger geworden zodra je weet welke commando’s je moet uitvoeren. Want Windows moet het natuurlijk soms ingewikkelder maken dan nodig, maar als je volhoudt, besparen deze cmdlets je uren.