Nastavení sítě pomocí PowerShell (IP adresa, DNS, brána, trasy)

V tomto článku se budeme zabývat funkcemi konfigurace síťových adaptérů v systému Windows z prostředí PowerShell. Podívejme se, jak zjistit a přiřadit statickou adresu IP, server DNS nebo nakonfigurovat síťové rozhraní pro příjem konfigurace IP ze serveru DHCP. Tyto rutiny cmdlet můžete použít ke konfiguraci sítě ve verzích Core / Nano systému Windows Server, Hyper-V Server a ke změně nastavení IP na vzdálených počítačích nebo síťových serverech nebo ve skriptech PS.

Dříve byl příkaz netsh interface ipv4 použit ke konfiguraci síťových nastavení v systému Windows z rozhraní CLI. Ve verzi PowerShell 3.0 a novější můžete pomocí vestavěného modulu PowerShell spravovat síťová nastavení systému Windows NetTCPIP.

Chcete-li získat seznam rutin v tomto modulu, spusťte:

get-command -module NetTCPIP

Tento modul také obsahuje rutinu Test-NetConnection, kterou lze použít ke kontrole dostupnosti portů TCP ve vzdálených počítačích..

Obsah:

  • Správa síťových adaptérů z prostředí PowerShell
  • Zobrazit nastavení síťového rozhraní TCP / IP z prostředí PowerShell
  • Nakonfigurujte statickou adresu IP z prostředí PowerShell
  • Set-DnsClientServerAddress: konfigurace adres serveru DNS
  • PowerShell: Konfigurace Získání adresy IP ze serveru DHCP
  • Vzdálená změna nastavení IP / DNS ve Windows

Správa síťových adaptérů z prostředí PowerShell

Uvádíme dostupná síťová rozhraní počítače:

Get-netadapter

Rutina vrací název rozhraní, stav (nahoru / dolů), adresu MAC, rychlost portu.

V tomto příkladu mám v počítači několik síťových adaptérů (kromě fyzického připojení Ethernet0 existuje i několik síťových rozhraní z Hyper-V a VMWare Player).

K síťovým rozhraním můžete přistupovat podle jejich názvů nebo indexů (sloupec ifIndex). V našem příkladu vyberte fyzický adaptér LAN Intel 82574L, který potřebujete, zadejte příkaz:

Get-NetAdapter - jméno "Ethernet0"

nebo

Get-NetAdapter - RozhraníIndex 8

Název adaptéru můžete změnit:

Přejmenovat-NetAdapter -Name Ethernet0 -NewName LAN

Chcete-li síťové rozhraní vypnout, použijte příkazy:

Get-NetAdapter -InterfaceIndex 13 | Zakázat síťový adaptér

Když zapnete rozhraní, nemůžete určit jeho index, protože není přidělen. Můžete zadat název adaptéru nebo jeho popis.

Enable-NetAdapter - InterfaceDescription „Hyper-V Virtual Ethernet Adapter“

Pokud je pro adaptér určen VLAN, můžete jej zobrazit takto:

Get-NetAdapter | ft Jméno, stav, rychlost odkazu, VlanID

Informace o použitém ovladači síťového adaptéru:

Get-NetAdapter | ft Jméno, DriverName, DriverVersion, DriverInformation, DriverFileName

Informace o fyzických síťových adaptérech (slot PCI, sběrnice atd.).

Get-NetAdapterHardwareInfo

Zobrazit nastavení síťového rozhraní TCP / IP z prostředí PowerShell

Získejte aktuální nastavení síťového rozhraní (IP adresa, DNS, brána):

Get-NetIPConfigurace -InterfaceAlias ​​Ethernet0

Chcete-li zobrazit podrobnější informace o konfiguraci síťového rozhraní, použijte příkaz:

Get-NetIPConfigurace -InterfaceAlias ​​Ethernet0 -Detailed

V tomto případě se zobrazí přiřazený síťový profil rozhraní (NetProfile.NetworkCategory), nastavení MTU (NetIPv4Interface.NlMTU), zda se přijímají adresy z DHCP (NetIPv4Interface.DHCP), a některé další užitečné informace..

Získat hodnotu pouze IP adresu rozhraní:

(Get-NetAdapter - název ethernet0 | Get-NetIPAddress) .IPv4Address

Nakonfigurujte statickou adresu IP z prostředí PowerShell

Zkusme nastavit statickou IP adresu síťového rozhraní. Změna adresy IP, masky podsítě a brány síťového rozhraní:

New-NetIPAddress -IPAddress 192.168.1.80 -DefaultGateway 192.168.1.1 -PrefixLength 24 -InfacefaceIndex 8

IP adresu můžete nastavit tak, že ji uvedete jako více polí (jasněji):

$ ipParams = @
RozhraníIndex = 8
IPAddress = "192.168.1.22"
PrefixLength = 24
AddressFamily = "IPv4"

New-NetIPAddress @ipParams

Pomocí rutiny New-NetIPAddress můžete přidat druhou síťovou adresu do síťového rozhraní..

Je-li statická adresa IP již nakonfigurována a je třeba ji změnit, použijte cmdlet Set-NetIPAddress:

Set-NetIPAddress -InterfaceIndex 8 -IPAddress 192.168.1.90

Chcete-li zakázat příjem IP adres z DHCP na rozhraní, postupujte takto:

Set-NetIPInterface -InterfaceAlias Ethernet0 -DHCP zakázáno

Použijte rutinu k zobrazení směrovací tabulky. Get-NetRoute. Chcete-li přidat novou trasu, použijte New-NetRoute:

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

Zakázat protokol IPv6 pro síťové rozhraní:

Get-NetAdapterBinding -InterfaceAlias ​​Ethernet0 | Set-NetAdapterBinding -Enabled: $ false -ComponentID ms_tcpip6

Set-DnsClientServerAddress: konfigurace adres serveru DNS

Chcete-li nastavit primární a sekundární adresy serveru DNS ve Windows, použijte rutinu Set-DNSClientServerAddress. Například:

Set-DNSClientServerAddress -InterfaceIndex 8 -ServerAddresses 192.168.1.11,10.1.1.11

Server DNS můžete také nastavit pomocí pole:

$ dnsParams = @
RozhraníIndex = 8
ServerAddresses = ("8.8.8.8", "8.8.4.4")

Set-DnsClientServerAddress @dnsParams

Po změně nastavení DNS můžete vymazat mezipaměť DNS:

Clear-DnsClientCache

PowerShell: Konfigurace Získání adresy IP ze serveru DHCP

Aby síťové rozhraní počítače mohlo přijímat dynamickou IP adresu ze serveru DHCP, spusťte příkaz:

Set-NetIPInterface -InterfaceAlias ​​Ethernet0 -Dhcp Enabled

Vymazat nastavení serveru DNS:

Set-DnsClientServerAddress -InterfaceIndex 8 -ResetServerAddresses

A restartujte rozhraní a získejte IP adresu:

Restartujte síťový adaptér - rozhraníAlias ​​Ethernet0

Pokud jste dříve měli nakonfigurovanou bránu, odstraňte ji:

Set-NetIPInterface -InterfaceAlias ​​Ethernet0 | Remove-NetRoute - Potvrzení: $ false

Vzdálená změna nastavení IP / DNS ve Windows

Pomocí prostředí PowerShell můžete vzdáleně měnit nastavení IP adres nebo serverů DNS na více vzdálených počítačích. Předpokládejme, že vaším úkolem je změnit nastavení DNS pro všechny servery v určeném AD kontejneru. K získání seznamu počítačů ve skriptu níže se používá rutina Get-ADComputer a vzdálené připojení k počítačům se provádí pomocí WinRM (Invoke-Command cmdlet):

$ Servers = Get-ADComputer -SearchBase 'OU = Moskva, DC = winitpro, DC = loc' -Filter '(„Windows Server *“ podobný operačnímu systému) | Název třídicího objektu
ForEach ($ Server in $ Servers)
Write-Host "Server $ ($ Server.Name)"
Invoke-Command -ComputerName $ Server.Name -ScriptBlock
$ NewDnsServerSearchOrder = "192.168.1.11", "8.8.4.4"
$ Adapters = Get-WmiObject Win32_NetworkAdapterConfiguration | Where-Object $ _. DHCPEnabled --ne 'True' - a $ _. DNSServerSearchOrder -ne $ null
Write-Host "Old DNS settings:"
$ Adaptéry | ForEach-Object $ _. DNSServerSearchOrder
$ Adaptéry | ForEach-Object $ _. SetDNSServerSearchOrder ($ NewDnsServerSearchOrder) | Nulová
$ Adapters = Get-WmiObject Win32_NetworkAdapterConfiguration | Where-Object $ _. DHCPEnabled --ne 'True' - a $ _. DNSServerSearchOrder -ne $ null
Write-Host "Nová nastavení DNS:"
$ Adaptéry | ForEach-Object $ _. DNSServerSearchOrder