Nastavenie siete pomocou PowerShell (IP adresa, DNS, brána, trasy)

V tomto článku sa zameriame na funkcie konfigurácie sieťových adaptérov v systéme Windows z prostredia PowerShell. Pozrime sa, ako zistiť a prideliť statickú adresu IP, server DNS alebo nakonfigurovať sieťové rozhranie na príjem konfigurácie IP zo servera DHCP. Tieto rutiny cmdlet môžete použiť na konfiguráciu siete vo verziách Core / Nano systému Windows Server, Hyper-V Server, na zmenu nastavení IP na vzdialených počítačoch alebo sieťových serveroch alebo v skriptoch PS..

Predtým bol príkaz netsh interface ipv4 použitý na konfiguráciu sieťových nastavení v systéme Windows z rozhrania CLI. Vo verzii PowerShell 3.0 a novšej môžete pomocou zabudovaného modulu PowerShell spravovať sieťové nastavenia systému Windows NetTCPIP.

Ak chcete získať zoznam cmdletov v tomto module, spustite:

get-command -module NetTCPIP

Tento modul tiež obsahuje rutinu Test-NetConnection, ktorú je možné použiť na kontrolu dostupnosti portov TCP na vzdialených počítačoch..

obsah:

  • Správa sieťových adaptérov z prostredia PowerShell
  • Zobraziť nastavenia sieťového rozhrania TCP / IP z prostredia PowerShell
  • Nakonfigurujte statickú adresu IP z prostredia PowerShell
  • Set-DnsClientServerAddress: nakonfigurujte adresy servera DNS
  • PowerShell: Konfigurácia Získanie adresy IP zo servera DHCP
  • Diaľkovo meniť nastavenia IP / DNS vo Windows

Správa sieťových adaptérov z prostredia PowerShell

Uvádzame dostupné sieťové rozhrania počítača:

Get-NetAdapter

Rutina vracia názov rozhrania, stav (hore / dole), adresu MAC, rýchlosť portu.

V tomto príklade mám na počítači niekoľko sieťových adaptérov (okrem fyzického pripojenia Ethernet0 existuje aj niekoľko sieťových rozhraní z prehrávača Hyper-V a VMWare Player)..

K sieťovým rozhraniam môžete pristupovať podľa ich názvov alebo indexov (stĺpec ifIndex). V našom príklade, ak chcete vybrať fyzický adaptér LAN Intel 82574L, musíte zadať príkaz:

Get-NetAdapter - názov „Ethernet0“

alebo

Get-NetAdapter -InterfaceIndex 8

Názov adaptéra môžete zmeniť:

Premenovať-NetAdapter -Name Ethernet0 -NewName LAN

Ak chcete vypnúť sieťové rozhranie, použite príkazy:

Get-NetAdapter -InterfaceIndex 13 | zakázať NetAdapter

Keď zapnete rozhranie, nemôžete zadať jeho index, pretože nie je pridelený. Môžete zadať názov adaptéra alebo jeho popis.

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

Ak je pre adaptér zadaná sieť VLAN, môžete ju zobraziť takto:

Get-NetAdapter | ft Meno, stav, rýchlosť spojenia, VlanID

Informácie o použitom ovládači sieťového adaptéra:

Get-NetAdapter | ft Meno, DriverName, DriverVersion, DriverInformation, DriverFileName

Informácie o fyzických sieťových adaptéroch (slot PCI, zbernica atď.).

Get-NetAdapterHardwareInfo

Zobraziť nastavenia sieťového rozhrania TCP / IP z prostredia PowerShell

Získajte aktuálne nastavenia sieťového rozhrania (IP adresa, DNS, brána):

Get-NetIPConfigurácia -InterfaceAlias ​​Ethernet0

Ak chcete zobraziť podrobnejšie informácie o konfigurácii sieťového rozhrania, použite príkaz:

Get-NetIPConfigurácia -InterfaceAlias ​​Ethernet0 -Detailed

V tomto prípade sa zobrazí priradený sieťový profil rozhrania (NetProfile.NetworkCategory), nastavenia MTU (NetIPv4Interface.NlMTU), či sa prijímajú adresy z DHCP (NetIPv4Interface.DHCP), a niektoré ďalšie užitočné informácie..

Získajte hodnotu iba adresu IP rozhrania:

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

Nakonfigurujte statickú adresu IP z prostredia PowerShell

Skúsme nastaviť statickú adresu IP pre sieťové rozhranie. Ak chcete zmeniť adresu IP, masku podsiete a bránu sieťového rozhrania:

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

IP adresu môžete nastaviť tak, že ju uvediete ako viac polí (jasnejšie):

$ ipParams = @
RozhranieIndex = 8
IPAddress = "192.168.1.22"
PrefixLength = 24
AddressFamily = "IPv4"

New-NetIPAddress @ipParams

Na rutinu New-NetIPAddress môžete použiť druhú adresu IP do sieťového rozhrania..

Ak už je statická adresa IP nakonfigurovaná a potrebujete ju zmeniť, použite cmdlet Set-NetIPAddress:

Set-NetIPAddress -InterfaceIndex 8 -IPAddress 192.168.1.90

Ak chcete zakázať prijímanie adries IP z DHCP na rozhraní, postupujte takto:

Set-NetIPInterface -InterfaceAlias Ethernet0 -DHCP je zakázané

Použite rutinu na zobrazenie smerovacej tabuľky. Get-NetRoute. Ak chcete pridať novú trasu, použite New-NetRoute:

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

Vypnite protokol IPv6 pre sieťové rozhranie:

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

Set-DnsClientServerAddress: nakonfigurujte adresy servera DNS

Ak chcete nastaviť primárne a sekundárne adresy servera DNS vo Windows, použite rutinu Set-DNSClientServerAddress. Napríklad:

Set-DNSClientServerAddress -InterfaceIndex 8 -ServerAddresses 192.168.1.11,10.1.1.11

Server DNS môžete tiež nastaviť pomocou poľa:

$ dnsParams = @
RozhranieIndex = 8
ServerAddresses = ("8.8.8.8", "8.8.4.4")

Set-DnsClientServerAddress @dnsParams

Po zmene nastavení DNS môžete vymazať vyrovnávaciu pamäť DNS:

Clear-DnsClientCache

PowerShell: Konfigurácia Získanie adresy IP zo servera DHCP

Aby sieťové rozhranie počítača mohlo prijímať dynamickú IP adresu zo servera DHCP, spustite príkaz:

Set-NetIPInterface -InterfaceAlias ​​Ethernet0 -Dhcp Enabled

Vymazať nastavenia servera DNS:

Set-DnsClientServerAddress -InterfaceIndex 8 -ResetServerAddresses

A reštartujte rozhranie a získajte IP adresu:

Reštartujte-NetAdapter -InterfaceAlias ​​Ethernet0

Ak ste predtým mali nakonfigurovanú bránu, odstráňte ju:

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

Diaľkovo meniť nastavenia IP / DNS vo Windows

Pomocou prostredia PowerShell môžete vzdialene meniť nastavenia IP adries alebo serverov DNS na viacerých vzdialených počítačoch. Predpokladajme, že vašou úlohou je zmeniť nastavenia DNS pre všetky servery v určenom kontajneri AD. Ak chcete získať zoznam počítačov v skripte nižšie, používa sa rutina Get-ADComputer a vzdialené pripojenie k počítačom sa vykonáva prostredníctvom WinRM (Invoke-Command cmdlet):

$ Servery = Get-ADComputer -SearchBase 'OU = Moskva, DC = winitpro, DC = loc' -Filter '(„Windows Server *“ podobný operačnému systému)' | Názov objektu zoradenia
ForEach ($ Server in $ Servers)
Hostiteľ zápisu "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 "Staré nastavenia DNS:"
$ Adaptéry | ForEach-Object $ _. DNSServerSearchOrder
$ Adaptéry | ForEach-Object $ _. SetDNSServerSearchOrder ($ NewDnsServerSearchOrder) | Out-Null
$ Adapters = Get-WmiObject Win32_NetworkAdapterConfiguration | Where-Object $ _. DHCPEnabled -ne 'True' - a $ _. DNSServerSearchOrder -ne $ null
Write-Host "Nové nastavenia DNS:"
$ Adaptéry | ForEach-Object $ _. DNSServerSearchOrder