Trong bài viết này, chúng tôi sẽ hướng dẫn bạn cách định cấu hình các thông số bộ điều hợp mạng trong Windows qua PowerShell. Chúng ta sẽ học cách lấy và đặt địa chỉ IP tĩnh và DNS (máy chủ định danh), cấu hình giao diện mạng của bạn để lấy cấu hình IP từ máy chủ DHCP. Bạn có thể sử dụng các lệnh ghép ngắn này để định cấu hình mạng trong các phiên bản Core / Nano của Windows Server, trong Hyper-V Server, để thay đổi cài đặt IP trên máy tính / máy chủ từ xa và trong tập lệnh PS của bạn.
Trước đây, giao diện netsh ipv4
lệnh được sử dụng để cấu hình cài đặt mạng Windows từ CLI. Trong PowerShell 3.0 và mới hơn, bạn có thể sử dụng PowerShell NetTCPIP tích hợp sẵn để quản lý cài đặt mạng Windows.
Để lấy danh sách các lệnh ghép ngắn trong mô-đun này, hãy chạy lệnh sau:
get-command -module NetTCPIP
Mô-đun này cũng bao gồm lệnh ghép ngắn Test-NetConnection mà bạn có thể sử dụng để kiểm tra tính khả dụng của cổng TCP trên các máy tính từ xa.
Quản lý bộ điều hợp mạng bằng PowerShell
Hiển thị danh sách các giao diện mạng có sẵn trên máy tính:
Get-NetAdapter
Lệnh ghép ngắn trả về tên giao diện, trạng thái của nó (Lên / Xuống), địa chỉ MAC và tốc độ cổng.
Trong ví dụ này, tôi có nhiều bộ điều hợp mạng trên máy tính của mình (ngoài kết nối vật lý, Ethernet0 , Tôi có một số giao diện mạng Hyper-V và VMWare Player).
Bạn có thể tham khảo các giao diện mạng theo tên hoặc chỉ mục của chúng ( Chỉ mục cột). Trong ví dụ của chúng tôi, để chọn bộ điều hợp mạng LAN vật lý Intel 82574L, hãy sử dụng lệnh:
Get-NetAdapter -Tên "Ethernet0"
hoặc:
Get-NetAdapter -InterfaceIndex 8
Bạn có thể thay đổi tên bộ điều hợp:
Đổi tên-NetAdapter -Tên Ethernet0 -Tên mạng LAN mới
Để tắt giao diện mạng, hãy sử dụng lệnh sau:
Get-NetAdapter -InterfaceIndex 13 | Tắt-NetAdapter
Khi bạn bật một giao diện, bạn không thể sử dụng chỉ mục của nó vì nó chưa được gán. Bạn có thể chỉ định tên hoặc mô tả bộ điều hợp:
Enable-NetAdapter -InterfaceDescription “Bộ điều hợp Ethernet ảo Hyper-V"
Nếu một VLAN được chỉ định cho một bộ điều hợp, bạn có thể hiển thị nó như sau:
Get-NetAdapter | ft Tên, Trạng thái, Tốc độ liên kết, VlanID
Đây là cách bạn có thể lấy thông tin về trình điều khiển bộ điều hợp mạng được sử dụng:
Get-NetAdapter | ft Name, DriverName, DriverVersion, DriverInformation, DriverFileName
Thông tin về bộ điều hợp mạng vật lý (khe cắm PCI, bus, v.v.):
Get-NetAdapterHardwareInfo
Cách xem cài đặt bộ điều hợp mạng TCP / IP với PowerShell?
Để nhận cài đặt bộ điều hợp mạng hiện tại (địa chỉ IP, DNS, cổng mặc định):
Get-NetIPConfiguration -InterfaceAlias Ethernet0
Để hiển thị thông tin chi tiết về cấu hình TCP / IP của bộ điều hợp mạng hiện tại, hãy sử dụng lệnh sau:
Get-NetIPConfiguration -InterfaceAlias Ethernet0 -Detailed
Trong trường hợp này, cấu hình mạng được chỉ định (NetProfile.NetworkCategory) của giao diện, cài đặt MTU (NetIPv4Interface.NlMTU), việc lấy địa chỉ IP từ DHCP có được bật hay không (NetIPv4Interface.DHCP) và thông tin hữu ích khác được hiển thị.
Để chỉ lấy địa chỉ IPv4 của giao diện:
(Get-NetAdapter -Tên ethernet0 | Get-NetIPAddress) .IPv4Address
Sử dụng PowerShell để đặt Địa chỉ IP tĩnh
Hãy thử đặt một địa chỉ IP tĩnh cho NIC. Để thay đổi địa chỉ IP, mặt nạ mạng con và cổng mặc định cho giao diện mạng, hãy sử dụng:
New-NetIPAddress –IPAddress 192.168.2.50 -DefaultGateway 192.168.2.1 -PrefixLength 24 -InterfaceIndex 8
Bạn có thể đặt địa chỉ IP bằng cấu trúc mảng (trực quan hơn):
$ ipParams =@ {
InterfaceIndex =8
IPAddress ="192.168.2.50"
PrefixLength =24
AddressFamily ="IPv4"
}
New-NetIPAddress @ipParams
Nếu địa chỉ IP tĩnh đã được định cấu hình và bạn muốn thay đổi địa chỉ đó, thì Set-NetIPAddress cmdlet được sử dụng:
Set-NetIPAddress -InterfaceIndex 8 -IPAddress 192.168.2.90
Để vô hiệu hóa việc lấy địa chỉ IP từ DHCP cho bộ điều hợp của bạn, hãy chạy lệnh:
Set-NetIPInterface -InterfaceAlias Ethernet0 -Dhcp Disabled
Để xem bảng định tuyến, lệnh ghép ngắn Get-NetRoute được sử dụng. Để thêm một tuyến đường mới, hãy sử dụng New-NetRoute lệnh ghép ngắn:
New-NetRoute -DestinationPrefix "0.0.0.0/0" -NextHop "192.168.2.2" -InterfaceIndex 8
Để tắt giao thức IPv6 cho bộ điều hợp mạng:
Get-NetAdapterBinding -InterfaceAlias Ethernet0 | Set-NetAdapterBinding -Enabled:$ false -ComponentID ms_tcpip6
Set-DnsClientServerAddress:Đặt Địa chỉ Máy chủ DNS Chính và Phụ
Để đặt địa chỉ IP máy chủ DNS chính và phụ trong Windows, hãy sử dụng Set-DNSClientServerAddress cmdlet. Ví dụ:
Set-DNSClientServerAddress –InterfaceIndex 8 –ServerAddresses 192.168.2.11,10.1.2.11
Bạn cũng có thể đặt máy chủ định danh bằng cách sử dụng một mảng:
$ dnsParams =@ {
InterfaceIndex =8
ServerAddresses =("8.8.8.8", "8.8.4.4")
}
Set-DnsClientServerAddress @dnsParams
Sau khi thay đổi cài đặt DNS, bạn có thể xóa bộ nhớ cache của trình phân giải:
Clear-DnsClientCache
Làm cách nào để thay đổi địa chỉ IP tĩnh thành DHCP bằng PowerShell?
Để cho phép máy tính lấy địa chỉ IP động từ máy chủ DHCP cho bộ điều hợp mạng, hãy chạy lệnh sau:
Set-NetIPInterface -InterfaceAlias Ethernet0 -Dhcp Enabled
Xóa cài đặt máy chủ DNS:
Set-DnsClientServerAddress –InterfaceIndex 8 -ResetServerAddresses
Và khởi động lại bộ điều hợp của bạn để tự động lấy địa chỉ IP từ máy chủ DHCP:
Khởi động lại-NetAdapter -InterfaceAlias Ethernet0
Nếu trước đó bạn đã định cấu hình cổng mặc định, hãy xóa nó:
Set-NetIPInterface -InterfaceAlias Ethernet0 | Remove-NetRoute -Confirm:$ false
Cách thay đổi từ xa cài đặt Địa chỉ IP và DNS bằng PowerShell?
Bạn có thể sử dụng PowerShell để thay đổi từ xa địa chỉ IP hoặc cài đặt máy chủ DNS trên nhiều máy tính từ xa. Giả sử, nhiệm vụ của bạn là thay đổi cài đặt DNS cho tất cả các máy chủ trong vùng chứa AD cụ thể (Đơn vị tổ chức). Để lấy danh sách các máy tính trong tập lệnh bên dưới, lệnh ghép ngắn Get-ADComputer được sử dụng và WinRM được sử dụng để kết nối với các máy tính từ xa (lệnh ghép ngắn Invoke-Command):
$ Servers =Get-ADComputer -SearchBase ‘OU =Máy chủ, OU =Berlin, OU =DE, DC =woshub, DC =cpm’ -Filter '(OperatingSystem-giống như "Windows Server *")' | Sắp xếp-Tên đối tượng
ForEach ($ Server trong $ Servers) {
Ghi-Máy chủ "Máy chủ $ ($ Server.Name)"
Gọi-Lệnh -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 "Cài đặt DNS cũ:"
$ Bộ điều hợp | ForEach-Object {$ _. DNSServerSearchOrder}
$ Bộ điều hợp | ForEach-Object {$ _. SetDNSServerSearchOrder ($ NewDnsServerSearchOrder)} | Out-Null
$ Adapters =Get-WmiObject Win32_NetworkAdapterConfiguration | Where-Object {$ _. DHCPEnabled -ne 'True' -and $ _. DNSServerSearchOrder -ne $ null}
Write-Host "Cài đặt DNS mới:"
$ Bộ điều hợp | ForEach-Object {$ _. DNSServerSearchOrder}
}
}