Pengaturan jaringan menggunakan PowerShell (alamat IP, DNS, gateway, rute)

Pada artikel ini, kami akan mempertimbangkan fitur mengkonfigurasi adapter jaringan di Windows dari PowerShell. Mari kita lihat bagaimana mencari tahu dan menetapkan alamat IP statis, server DNS, atau mengkonfigurasi antarmuka jaringan untuk menerima konfigurasi IP dari server DHCP. Anda dapat menggunakan cmdlet ini untuk mengonfigurasi jaringan di versi Core / Nano Windows Server, di Hyper-V Server, untuk mengubah pengaturan IP pada komputer jarak jauh atau server jaringan atau dalam skrip PS.

Sebelumnya, perintah antarmuka ipv4 netsh digunakan untuk mengkonfigurasi pengaturan jaringan di Windows dari CLI. Di PowerShell 3.0 dan yang lebih baru, Anda dapat menggunakan modul PowerShell bawaan untuk mengelola pengaturan jaringan Windows NetTCPIP.

Untuk mendapatkan daftar cmdlet dalam modul ini, jalankan:

dapatkan-perintah-modul NetTCPIP

Modul ini juga mencakup cmdlet Test-NetConnection, yang dapat digunakan untuk memeriksa ketersediaan port TCP pada komputer jarak jauh..

Konten:

  • Mengelola Adapter Jaringan dari PowerShell
  • Lihat Pengaturan Antarmuka Jaringan TCP / IP dari PowerShell
  • Konfigurasikan Alamat IP Statis dari PowerShell
  • Set-DnsClientServerAddress: mengkonfigurasi alamat server DNS
  • PowerShell: Mengkonfigurasi Mendapatkan Alamat IP dari Server DHCP
  • Secara jarak jauh mengubah pengaturan IP / DNS di Windows

Mengelola Adapter Jaringan dari PowerShell

Kami mencantumkan antarmuka jaringan komputer yang tersedia:

Dapatkan-netadapter

Cmdlet mengembalikan nama antarmuka, status (Atas / Bawah), alamat MAC, kecepatan port.

Dalam contoh ini, saya memiliki beberapa adapter jaringan di komputer saya (selain koneksi fisik Ethernet0, ada beberapa antarmuka jaringan dari Hyper-V dan VMWare Player).

Anda dapat mengakses antarmuka jaringan dengan nama atau indeks mereka (kolom ifIndex). Dalam contoh kami, untuk memilih adaptor LAN fisik Intel 82574L Anda perlu mengetik perintah:

Dapatkan-NetAdapter -Nama "Ethernet0"

atau

Dapatkan-NetAdapter -InterfaceIndex 8

Anda dapat mengubah nama adaptor:

Ganti nama-NetAdapter -Name Ethernet0 -NewName LAN

Untuk mematikan antarmuka jaringan, gunakan perintah:

Dapatkan-NetAdapter -InterfaceIndex 13 | Nonaktifkan-NetAdapter

Ketika Anda menghidupkan antarmuka, Anda tidak dapat menentukan indeksnya, karena dia tidak ditugaskan. Anda dapat menentukan nama adaptor atau deskripsinya.

Aktifkan-NetAdapter -InterfaceDescription "Hyper-V Virtual Ethernet Adapter"

Jika VLAN ditentukan untuk adaptor, Anda dapat menampilkannya seperti ini:

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

Informasi tentang driver adaptor jaringan yang digunakan:

Dapatkan-NetAdapter | Nama ft, DriverName, DriverVersion, DriverInformation, DriverFileName

Informasi tentang adapter jaringan fisik (slot PCI, bus, dll.).

Dapatkan-NetAdapterHardwareInfo

Lihat Pengaturan Antarmuka Jaringan TCP / IP dari PowerShell

Dapatkan pengaturan antarmuka jaringan saat ini (alamat IP, DNS, gateway):

Dapatkan-NetIPConfiguration -InterfaceAlias ​​Ethernet0

Untuk menampilkan informasi lebih rinci tentang konfigurasi antarmuka jaringan, gunakan perintah:

Dapatkan-NetIPConfiguration -InterfaceAlias ​​Ethernet0 -Detailed

Dalam hal ini, profil jaringan yang ditetapkan antarmuka (NetProfile.NetworkCategory), pengaturan MTU (NetIPv4Interface.NlMTU), apakah menerima alamat dari DHCP (NetIPv4Interface.DHCP), dan beberapa informasi bermanfaat lainnya ditampilkan.

Dapatkan nilai hanya alamat IP antarmuka:

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

Konfigurasikan Alamat IP Statis dari PowerShell

Mari kita coba atur alamat IP statis untuk antarmuka jaringan. Untuk mengubah alamat IP, subnet mask, dan gateway untuk antarmuka jaringan:

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

Anda dapat mengatur alamat IP dengan menyajikannya sebagai array yang lebih banyak (lebih jelas):

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

New-NetIPAddress @ipParams

Anda dapat menggunakan cmdlet New-NetIPAddress untuk menambahkan alamat IP kedua ke antarmuka jaringan..

Jika alamat IP statis sudah dikonfigurasi dan Anda perlu mengubahnya, gunakan cmdlet Set-NetIPAddress:

Set-NetIPAddress -InterfaceIndex 8 -IPAddress 192.168.1.90

Untuk menonaktifkan penerimaan alamat IP dari DHCP pada antarmuka, lakukan:

Set-NetIPInterface -InterfaceAlias Ethernet0 -DHCP Dinonaktifkan

Gunakan cmdlet untuk melihat tabel routing. Dapatkan-NetRoute. Untuk menambahkan rute baru, gunakan New-NetRoute:

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

Nonaktifkan protokol IPv6 untuk antarmuka jaringan:

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

Set-DnsClientServerAddress: mengkonfigurasi alamat server DNS

Untuk mengatur alamat server DNS primer dan sekunder di Windows, gunakan cmdlet Set-DNSClientServerAddress. Sebagai contoh:

Set-DNSClientServerAddress -InterfaceIndex 8 -ServerAddresses 192.168.1.11,10.1.1.11

Anda juga dapat mengatur server DNS melalui array:

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

Set-DnsClientServerAddress @dnsParams

Setelah mengubah pengaturan DNS, Anda dapat menghapus cache DNS:

Hapus-DnsClientCache

PowerShell: Mengkonfigurasi Mendapatkan Alamat IP dari Server DHCP

Agar antarmuka jaringan komputer menerima alamat IP dinamis dari server DHCP, jalankan perintah:

Set-NetIPInterface -InterfaceAlias ​​Ethernet0 -Dhcp Diaktifkan

Hapus pengaturan server DNS:

Set-DnsClientServerAddress -InterfaceIndex 8 -ResetServerAddresses

Dan restart antarmuka untuk mendapatkan alamat IP:

Restart-NetAdapter -InterfaceAlias ​​Ethernet0

Jika sebelumnya Anda memiliki gateway yang dikonfigurasi, hapuslah:

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

Secara jarak jauh mengubah pengaturan IP / DNS di Windows

Anda dapat menggunakan PowerShell untuk mengubah pengaturan alamat IP atau server DNS jarak jauh pada banyak komputer jarak jauh. Misalkan tugas Anda adalah mengubah pengaturan DNS untuk semua server dalam wadah AD yang ditentukan. Untuk mendapatkan daftar komputer dalam skrip di bawah ini, cmdlet Get-ADComputer digunakan, dan koneksi jarak jauh ke komputer dilakukan melalui WinRM (Invoke-Command cmdlet):

$ Server = Dapatkan-ADComputer -SearchBase 'OU = Moscow, DC = winitpro, DC = loc' -Filter '(Sistem Operasi mirip "Windows Server *")' | Nama Sort-Obyek
ForEach ($ Server dalam $ Server)
Host-Tulis "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 'Benar' -dan $ _. DNSServerSearchOrder -ne $ null
Host-Tulis "Pengaturan DNS lama:"
$ Adapters | ForEach-Object $ _. DNSServerSearchOrder
$ Adapters | ForEach-Object $ _. SetDNSServerSearchOrder ($ NewDnsServerSearchOrder) | Keluar nol
$ Adapters = Get-WmiObject Win32_NetworkAdapterConfiguration | Where-Object $ _. DHCPEnabled -ne 'Benar' -dan $ _. DNSServerSearchOrder -ne $ null
Host-Tulis "Pengaturan DNS Baru:"
$ Adapters | ForEach-Object $ _. DNSServerSearchOrder