Määritä verkkoasetukset Windowsissa PowerShellillä: IP-osoite, DNS, oletusyhdyskäytävä, staattiset reitit

Windowsissa voit hallita verkkosovittimiesi asetuksia graafisen käyttöliittymän lisäksi myös PowerShell-komentokehotteen kautta. Tässä artikkelissa tarkastellaan tärkeimpiä cmdlet-komentoja, joiden avulla voit selvittää verkkosovittimen nykyisen IP-osoitteen, määrittää staattisen IP-osoitteen, DNS-palvelimen IP-osoitteen tai määrittää verkkoliitännän vastaanottamaan IP-määritykset DHCP-palvelimelta. Näiden cmdlet-komentojen avulla voit määrittää verkkoyhteyden sekä Windows 10/11:ssä että Windows Serverissä (tai Server Core -versiossa), Hyper-V Serverissä, muuttaa etätietokoneiden verkkosovittimien IP-asetuksia ja PowerShell-automaatiokomentosarjoissasi.

Sisällys:

Aikaisemmin,netsh interface ipv4 komentoa käytettiin verkkoasetusten hallintaan CLI:stä. PowerShell 3.0:ssa ja uudemmissa versioissa voit käyttää sisäänrakennettuaNetTCPIPPowerShell-moduuli verkkoasetusten hallintaan Windowsissa.

Saat tämän moduulin cmdlet-luettelon suorittamalla seuraavan komennon:

get-command -module NetTCPIP

Tämä moduuli sisältää myös Test-NetConnection-cmdlet-komennon, jonka avulla voidaan etsiä avoimia TCP-portteja etätietokoneista.

Verkkosovittimen asetusten hallinta PowerShellin kautta

Luettele Windows-tietokoneen käytettävissä olevat verkkoliitännät:

Get-NetAdapter

cmdlet palauttaa käyttöliittymän nimen, sen tilan (ylös/alas), MAC-osoitteen ja portin nopeuden.

Tässä esimerkissä tietokoneellani on useita verkkosovittimia (fyysisen Ethernet0-liitännän lisäksi minulla on Hyper-V- ja VMWare Player -verkkoliitännät).

Vain käytössä olevien fyysisten verkkoliitäntöjen näyttäminen:

Get-NetAdapter -Physical | ? {$_.Status -eq "Up"}

Voit tarkastella vain tiettyjä verkkosovittimen parametreja, kuten nimeä, nopeutta, tilaa tai MAC-osoitetta:

Get-NetAdapter |Select-Object name,LinkSpeed,InterfaceOperationalStatus,MacAddress

Windowsissa saattaa olla piilotettuja verkkosovittimia. Näytä ne kaikki lisäämälläSisällytäPiilotettuparametri:

Get-NetAdapter –IncludeHidden

Tuloksena on luettelo kaikista virtuaalisista WAN Miniport -sovittimista, joita käytetään erityyppisissä yhteyksissä, mukaan lukien VPN. Näiden sovittimien uudelleenkäynnistys korjaa usein joitain VPN-yhteysvirheitä sisäänrakennetun Windows-asiakkaan kanssa. VPN-yhteyksien hallintaan on erilliset PowerShell-cmdlet-komennot.

Voit viitata verkkoliitäntöihin niiden nimillä tai hakemistoilla (Hakemisto-sarake). Valitse esimerkissämme fyysinen LAN-sovitin Intel 82574L Gigabit Network Connection komennolla:

Get-NetAdapter -Name Ethernet0

tai:

Get-NetAdapter -InterfaceIndex 8

Voit muuttaa sovittimen nimeä:

Rename-NetAdapter -Name Ethernet0 -NewName LAN

Voit poistaa verkkoliitännän käytöstä käyttämällä tätä komentoa:

Get-NetAdapter -Name Ethernet0| Disable-NetAdapter

Ota NIC käyttöön sen nimellä:

Enable-NetAdapter -Name Ethernet0

Jos verkkosovittimella on määritetty VLAN-numero, voit tarkastella sitä:

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

Näin saat tietoja käyttämästäsi verkkosovittimen ohjaimesta:

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

Listaa tiedot fyysisistä verkkosovittimista (PCI-korttipaikka, väylä jne.):

Get-NetAdapterHardwareInfo

Poista IPv6-protokolla käytöstä verkkoliitännässä:

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

Poista NetBIOS-protokolla käytöstä verkkoliitännässä:

Set-NetAdapterBinding -Name Ethernet0 -ComponentID ms_netbios -AllBindings -Enabled $True

Kuinka saada IP-osoiteasetukset PowerShellillä

Saat nykyiset verkkosovittimen asetukset Windowsissa (IP-osoite, DNS, oletusyhdyskäytävä):

Get-NetIPConfiguration -InterfaceAlias Ethernet0

AIHEUTTAA:Määritä DNS-poisto siivoamaan vanhentuneet DNS-tietueet AD:ssa

Voit näyttää tarkempia tietoja verkkoliitännän TCP/IP-kokoonpanosta käyttämällä komentoa

Get-NetIPConfiguration -InterfaceAlias Ethernet0 -Detailed

Tässä tapauksessa näytetään käyttöliittymän määritetty verkkosijainti (profiili) (NetProfile.NetworkCategory), MTU-asetukset (NetIPv4Interface.NlMTU), onko IP-osoitteen saaminen DHCP:stä käytössä (NetIPv4Interface.DHCP) ja muita hyödyllisiä tietoja.

Vain IPv4-liitäntäosoitteen saaminen:

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

Palauta vain käyttöliittymän IP-osoitteen arvo:

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

Kun kopioit tiedostoja virtuaalikoneille, monet järjestelmänvalvojat ovat huomanneet huonon verkon suorituskyvyn Windows Server 2019:ssä Hyper-V-roolien ollessa käytössä. Tässä tapauksessa TCP-pinon asetusten palauttaminen Windows Server 2016:ssa käytetyiksi asetuksiksi auttaa ratkaisemaan ongelmat:
Set-NetTCPSetting -SettingName DatacenterCustom,Datacenter -CongestionProvider DCTCP
Set-NetTCPSetting -SettingName DatacenterCustom,Datacenter -CwndRestart True
Set-NetTCPSetting -SettingName DatacenterCustom,Datacenter -ForceWS Disabled

Näytä luettelo verkkoprotokollista, jotka voidaan ottaa käyttöön tai poistaa käytöstä verkkosovittimelle:

Get-NetAdapterBinding -Name ethernet0 -IncludeHidden -AllBindings

Name                           DisplayName                                        ComponentID          Enabled
----                           -----------                                        -----------          -------
Ethernet                       File and Printer Sharing for Microsoft Networks    ms_server            True
Ethernet                       NetBIOS Interface                                  ms_netbios           True
Ethernet                       Microsoft LLDP Protocol Driver                     ms_lldp              True
Ethernet                       Microsoft NDIS Capture                             ms_ndiscap           True
Ethernet                       Internet Protocol Version 4 (TCP/IPv4)             ms_tcpip             True
Ethernet                       Microsoft RDMA - NDK                               ms_rdma_ndk          True
Ethernet                       Microsoft Network Adapter Multiplexor Protocol     ms_implat            False
Ethernet                       Link-Layer Topology Discovery Mapper I/O Driver    ms_lltdio            True
Ethernet                       NDIS Usermode I/O Protocol                         ms_ndisuio           True
Ethernet                       Point to Point Protocol Over Ethernet              ms_pppoe             True
Ethernet                       Link-Layer Topology Discovery Responder            ms_rspndr            True
Ethernet                       Internet Protocol Version 6 (TCP/IPv6)             ms_tcpip6            True
Ethernet                       Hyper-V Extensible Virtual Switch                  vms_pp               False
Ethernet                       WFP Native MAC Layer LightWeight Filter            ms_wfplwf_lower      True
Ethernet                       Client for Microsoft Networks                      ms_msclient          True
Ethernet                       Npcap Packet Driver (NPCAP)                        INSECURE_NPCAP       True
Ethernet                       WINS Client(TCP/IP) Protocol                       ms_netbt             True
Ethernet                       Bridge Driver                                      ms_l2bridge          True
Ethernet                       WFP 802.3 MAC Layer LightWeight Filter             ms_wfplwf_upper      True
Ethernet                       QoS Packet Scheduler                               ms_pacer             True

Voit tarkastella aktiivisia TCP/IP-istuntoja tietokoneella käyttämällä Get-NetTCPConnection-cmdlet-komentoa.

Aseta staattinen IP-osoite Windowsissa PowerShellin avulla

Yritetään asettaa staattinen IP-osoite verkkokortille. Jos haluat muuttaa Ethernet0-verkkoliitännän IP-osoitteen, verkkomaskin ja oletusyhdyskäytävän, käytä komentoa:

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

Voit määrittää IP-osoitteen käyttämällä taulukkorakennetta (visuaalisesti):

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

Voit käyttää New-NetIPAddress-osoitetta toisen IP-osoitteen (aliaksen) lisäämiseen verkkosovittimeen.

Jos staattinen IP-osoite on jo määritetty ja se on muutettava, käytäAseta-NetIPAddresscmdlet:

Set-NetIPAddress -InterfaceAlias Ethernet0 -IPAddress 192.168.2.90

Jos haluat estää IP-osoitteen saamisen DHCP:stä sovittimellesi, suorita komento:

Set-NetIPInterface -InterfaceAlias Ethernet0 -Dhcp Disabled

Poista staattinen IP-osoite:

Remove-NetIPAddress -IPAddress "xxx.xxx.xxx.xxx"

Aseta DNS-palvelimen IP-osoitteet Windowsissa PowerShellin avulla

Aseta ensisijaiset ja vaihtoehtoiset DNS-palvelimen IP-osoitteet Windowsissa käyttämälläSet-DNSClientServerAddresscmdlet. Esimerkiksi:

Set-DNSClientServerAddress –InterfaceIndex 8 –ServerAddresses 192.168.2.11,10.1.2.11

Voit myös määrittää DNS-nimipalvelimen IP-osoitteet taulukon avulla:

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

DNS-asetusten muuttamisen jälkeen voit tyhjentää DNS-ratkaisun välimuistin (vastaaipconfig /flushdns):

Clear-DnsClientCache

Näytä DNS-välimuistin sisältö Windowsissa::
Get-DnsClientCache

Reititystaulukoiden hallinta PowerShellillä

TheGet-NetRoutecmdletiä käytetään reititystaulukon näyttämiseen.

Hanki oletusyhdyskäytäväreitti fyysiselle verkkoliittymälle Windowsissa:

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

Voit lisätä uuden reitin käyttämälläUusi-NetRoutecmdlet:

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

Tämä komento lisää pysyvän reitin reititystaulukkoon (samanlainen kuinroute -p add). Jos haluat lisätä väliaikaisen reitin, lisää-PolicyStore "ActiveStore"vaihtoehto. Tämä reitti poistetaan Windowsin uudelleenkäynnistyksen jälkeen.

Poista reitti reititystaulukosta:

Remove-NetRoute -NextHop 192.168.0.1 -Confirm:$False

PowerShell: Muuta sovitin Staattisesta IP-osoitteesta DHCP:hen

Jos haluat määrittää tietokoneesi hankkimaan dynaamisen IP-osoitteen verkkosovittimelle DHCP-palvelimelta, suorita tämä komento:

Set-NetIPInterface -InterfaceAlias Ethernet0 -Dhcp Enabled

Tyhjennä DNS-palvelimen asetukset:

Set-DnsClientServerAddress –InterfaceAlias Ethernet0 -ResetServerAddresses

Ja käynnistä verkkosovitin uudelleen saadaksesi IP-osoitteen automaattisesti DHCP-palvelimelta:

Restart-NetAdapter -InterfaceAlias Ethernet0

Jos olet aiemmin määrittänyt oletusyhdyskäytävän, poista se:

Set-NetIPInterface -InterfaceAlias Ethernet0| Remove-NetRoute -Confirm:$false

Jos sinun on nollattava kaikki tietokoneen verkkoliitäntöjen IPv4-asetukset ja vaihdettava niitä saadaksesi dynaamisen IP-osoitteen DHCP:ltä, käytä seuraavaa komentosarjaa:

$IPType = "IPv4"
$adapter = Get-NetAdapter | ? {$_.Status -eq "up"}
$interface = $adapter | Get-NetIPInterface -AddressFamily $IPType
If ($interface.Dhcp -eq "Disabled") {
If (($interface | Get-NetIPConfiguration).Ipv4DefaultGateway) {
$interface | Remove-NetRoute -Confirm:$false
}
$interface | Set-NetIPInterface -DHCP Enabled
$interface | Set-DnsClientServerAddress -ResetServerAddresses
}

Muuta DNS- ja IP-osoitteita etänä useissa tietokoneissa PowerShellin avulla

PowerShellin avulla voit muuttaa IP-osoitetta tai DNS-palvelinasetuksia etänä useissa etätietokoneissa.

Oletetaan, että tehtäväsi on muuttaa DNS-asetuksia kaikissa Windows Server -isännissä tietyssä AD-organisaatioyksikössä (OU). Seuraava komentosarja käyttää Get-ADComputer-cmdlet-komentoa saadakseen luettelon tietokoneista Active Directorysta ja muodostaa sitten yhteyden etätietokoneisiin WinRM:n kautta (käytetään Invoke-Command-cmdlet-komentoa):

$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) {
Write-Host "Server $($Server.Name)"
Invoke-Command -ComputerName $Server.Name -ScriptBlock {
$NewDnsServerSearchOrder = "192.168.2.11","8.8.8.8"
$Adapters = Get-WmiObject Win32_NetworkAdapterConfiguration | Where-Object {$_.DHCPEnabled -ne 'True' -and $_.DNSServerSearchOrder -ne $null}
Write-Host "Old DNS settings: "
$Adapters | ForEach-Object {$_.DNSServerSearchOrder}
$Adapters | ForEach-Object {$_.SetDNSServerSearchOrder($NewDnsServerSearchOrder)} | Out-Null
$Adapters = Get-WmiObject Win32_NetworkAdapterConfiguration | Where-Object {$_.DHCPEnabled -ne 'True' -and $_.DNSServerSearchOrder -ne $null}
Write-Host "New DNS settings: "
$Adapters | ForEach-Object {$_.DNSServerSearchOrder}
}
}

Related Posts