Computer >> คอมพิวเตอร์ >  >> ระบบ >> Windows Server

การกำหนดค่าการตั้งค่าอะแดปเตอร์เครือข่ายด้วย PowerShell:ที่อยู่ IP, DNS, เกตเวย์เริ่มต้น, เส้นทางแบบคงที่

ในบทความนี้ เราจะแสดงวิธีกำหนดค่าพารามิเตอร์อะแดปเตอร์เครือข่ายใน Windows ผ่าน PowerShell เราจะเรียนรู้วิธีรับและตั้งค่าที่อยู่ IP แบบคงที่และ DNS (เนมเซิร์ฟเวอร์) กำหนดค่าอินเทอร์เฟซเครือข่ายของคุณเพื่อรับการกำหนดค่า IP จากเซิร์ฟเวอร์ DHCP คุณสามารถใช้ cmdlet เหล่านี้เพื่อกำหนดค่าเครือข่ายใน Windows Server เวอร์ชัน Core/Nano, ใน Hyper-V Server เพื่อเปลี่ยนการตั้งค่า IP บนคอมพิวเตอร์/เซิร์ฟเวอร์ระยะไกลและในสคริปต์ PS ของคุณ

ก่อนหน้านี้ อินเทอร์เฟซ netsh ipv4 คำสั่งที่ใช้ในการกำหนดการตั้งค่าเครือข่าย Windows จาก CLI ใน PowerShell 3.0 และใหม่กว่า คุณสามารถใช้ PowerShell NetTCPIP ในตัว โมดูลเพื่อจัดการการตั้งค่าเครือข่าย Windows

หากต้องการรับรายการ cmdlets ในโมดูลนี้ ให้เรียกใช้คำสั่งต่อไปนี้:

get-command -module NetTCPIP

การกำหนดค่าการตั้งค่าอะแดปเตอร์เครือข่ายด้วย PowerShell:ที่อยู่ IP, DNS, เกตเวย์เริ่มต้น, เส้นทางแบบคงที่

โมดูลนี้ยังรวมถึง Test-NetConnection cmdlet ที่คุณสามารถใช้เพื่อทดสอบความพร้อมใช้งานของพอร์ต TCP บนคอมพิวเตอร์ระยะไกล

การจัดการอะแดปเตอร์เครือข่ายด้วย PowerShell

แสดงรายการอินเทอร์เฟซเครือข่ายที่พร้อมใช้งานบนคอมพิวเตอร์:

Get-NetAdapter

cmdlet ส่งคืนชื่ออินเทอร์เฟซ สถานะ (ขึ้น/ลง) ที่อยู่ MAC และความเร็วพอร์ต

ในตัวอย่างนี้ ฉันมีอะแดปเตอร์เครือข่ายหลายตัวในคอมพิวเตอร์ของฉัน (นอกเหนือจากการเชื่อมต่อทางกายภาพ Ethernet0 ฉันมีอินเทอร์เฟซเครือข่าย Hyper-V และ VMWare Player)

การกำหนดค่าการตั้งค่าอะแดปเตอร์เครือข่ายด้วย PowerShell:ที่อยู่ IP, DNS, เกตเวย์เริ่มต้น, เส้นทางแบบคงที่

คุณอ้างอิงอินเทอร์เฟซเครือข่ายได้ตามชื่อหรือดัชนี (ดัชนี คอลัมน์). ในตัวอย่างของเรา ในการเลือกอแดปเตอร์ LAN จริง Intel 82574L ให้ใช้คำสั่ง:

รับ-NetAdapter -ชื่อ "Ethernet0"

หรือ:

Get-NetAdapter -InterfaceIndex 8

การกำหนดค่าการตั้งค่าอะแดปเตอร์เครือข่ายด้วย PowerShell:ที่อยู่ IP, DNS, เกตเวย์เริ่มต้น, เส้นทางแบบคงที่

คุณสามารถเปลี่ยนชื่ออแด็ปเตอร์:

เปลี่ยนชื่อ-NetAdapter -ชื่อ Ethernet0 -NewName LAN

หากต้องการปิดใช้งานอินเทอร์เฟซเครือข่าย ให้ใช้คำสั่งนี้:

รับ-NetAdapter -InterfaceIndex 13| ปิดการใช้งาน-NetAdapter

เมื่อคุณเปิดใช้งานอินเทอร์เฟซ คุณจะไม่สามารถใช้ดัชนีได้เนื่องจากยังไม่ได้กำหนด คุณสามารถระบุชื่ออแด็ปเตอร์หรือคำอธิบาย:

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

การกำหนดค่าการตั้งค่าอะแดปเตอร์เครือข่ายด้วย PowerShell:ที่อยู่ IP, DNS, เกตเวย์เริ่มต้น, เส้นทางแบบคงที่

หากมีการระบุ VLAN สำหรับอะแดปเตอร์ คุณสามารถแสดงได้ดังนี้:

รับ-NetAdapter | ft ชื่อ, สถานะ, ความเร็วของลิงค์, VlanID

วิธีรับข้อมูลเกี่ยวกับไดรเวอร์อะแดปเตอร์เครือข่ายที่ใช้มีดังนี้

รับ-NetAdapter | ft Name, DriverName, DriverVersion, DriverInformation, DriverFileName

การกำหนดค่าการตั้งค่าอะแดปเตอร์เครือข่ายด้วย PowerShell:ที่อยู่ IP, DNS, เกตเวย์เริ่มต้น, เส้นทางแบบคงที่

ข้อมูลเกี่ยวกับฟิสิคัลเน็ตเวิร์กอะแด็ปเตอร์ (สล็อต PCI, บัส ฯลฯ):

Get-NetAdapterHardwareInfo

วิธีการดูการตั้งค่าอะแดปเตอร์เครือข่าย TCP/IP ด้วย PowerShell

ในการรับการตั้งค่าอะแดปเตอร์เครือข่ายปัจจุบัน (ที่อยู่ IP, DNS, เกตเวย์เริ่มต้น):

รับ-NetIPConfiguration -InterfaceAlias ​​Ethernet0

การกำหนดค่าการตั้งค่าอะแดปเตอร์เครือข่ายด้วย PowerShell:ที่อยู่ IP, DNS, เกตเวย์เริ่มต้น, เส้นทางแบบคงที่

หากต้องการแสดงข้อมูลโดยละเอียดเกี่ยวกับการกำหนดค่า TCP/IP ของอะแดปเตอร์เครือข่ายปัจจุบัน ให้ใช้คำสั่งนี้:

Get-NetIPConfiguration -InterfaceAlias ​​Ethernet0 -Detailed

ในกรณีนี้ โปรไฟล์เครือข่ายที่กำหนด (NetProfile.NetworkCategory) ของอินเทอร์เฟซ การตั้งค่า MTU (NetIPv4Interface.NlMTU) จะเปิดใช้งานการรับที่อยู่ IP จาก DHCP หรือไม่  (NetIPv4Interface.DHCP) และข้อมูลที่เป็นประโยชน์อื่นๆ

การกำหนดค่าการตั้งค่าอะแดปเตอร์เครือข่ายด้วย PowerShell:ที่อยู่ IP, DNS, เกตเวย์เริ่มต้น, เส้นทางแบบคงที่

หากต้องการรับที่อยู่ IPv4 ของอินเทอร์เฟซเท่านั้น:

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

การใช้ PowerShell เพื่อตั้งค่าที่อยู่ IP แบบคงที่

ลองตั้งค่าที่อยู่ IP แบบคงที่สำหรับ NIC ในการเปลี่ยนที่อยู่ IP ซับเน็ตมาสก์และเกตเวย์เริ่มต้นสำหรับอินเทอร์เฟซเครือข่ายให้ใช้:

ใหม่-NetIPAddress –IPAddress 192.168.2.50 -DefaultGateway 192.168.2.1 -PrefixLength 24 -InterfaceIndex 8

คุณสามารถตั้งค่าที่อยู่ IP โดยใช้โครงสร้างอาร์เรย์ (มองเห็นได้ชัดเจนยิ่งขึ้น):

$ipParams =@{
InterfaceIndex =8
IPAddress ="192.168.2.50"
PrefixLength =24
AddressFamily ="IPv4"
}
ใหม่-NetIPAddress @ipParams

คุณสามารถใช้ New-NetIPAddress เพื่อเพิ่มที่อยู่ IP ที่สอง (นามแฝง) ให้กับอะแดปเตอร์เครือข่าย

หากที่อยู่ IP แบบคงที่ได้รับการกำหนดค่าแล้ว และคุณต้องการเปลี่ยน Set-NetIPAddress ใช้ cmdlet:

Set-NetIPAddress -InterfaceIndex 8 -IPAddress 192.168.2.90

หากต้องการปิดใช้งานการรับที่อยู่ IP จาก DHCP สำหรับอแด็ปเตอร์ของคุณ ให้เรียกใช้คำสั่ง:

Set-NetIPInterface -InterfaceAlias Ethernet0 -Dhcp ปิดการใช้งาน

ในการดูตารางเส้นทาง จะใช้ Get-NetRoute cmdlet หากต้องการเพิ่มเส้นทางใหม่ ให้ใช้ New-NetRoute cmdlet:

ใหม่-NetRoute -DestinationPrefix "0.0.0.0/0" -NextHop "192.168.2.2" -InterfaceIndex 8

ในการปิดใช้งานโปรโตคอล IPv6 สำหรับอะแดปเตอร์เครือข่าย:

รับ-NetAdapterBinding -InterfaceAlias ​​Ethernet0 | ชุด NetAdapterBinding -Enabled:$false -ComponentID ms_tcpip6

Set-DnsClientServerAddress:ตั้งค่าที่อยู่เซิร์ฟเวอร์ DNS หลักและรอง

ในการตั้งค่าที่อยู่ IP ของเซิร์ฟเวอร์ DNS หลักและรองใน Windows ให้ใช้ Set-DNSClientServerAddress cmdlet ตัวอย่างเช่น:

ชุด-DNSClientServerAddress –InterfaceIndex 8 –ServerAddresses 192.168.2.11,10.1.2.11

คุณยังสามารถตั้งค่าเนมเซิร์ฟเวอร์โดยใช้อาร์เรย์:

$dnsParams =@{
InterfaceIndex =8
ServerAddresses =("8.8.8.8","8.8.4.4")
}
Set-DnsClientServerAddress @dnsParams รหัส>

หลังจากเปลี่ยนการตั้งค่า DNS แล้ว คุณสามารถล้างแคชตัวแก้ไขได้:

Clear-DnsClientCache

จะเปลี่ยนที่อยู่ IP แบบคงที่เป็น DHCP โดยใช้ PowerShell ได้อย่างไร

เพื่อให้คอมพิวเตอร์ได้รับที่อยู่ IP แบบไดนามิกจากเซิร์ฟเวอร์ DHCP สำหรับอะแดปเตอร์เครือข่าย ให้เรียกใช้คำสั่งนี้:

Set-NetIPInterface -InterfaceAlias ​​Ethernet0 - เปิดใช้งาน Dhcp แล้ว

ล้างการตั้งค่าเซิร์ฟเวอร์ DNS:

Set-DnsClientServerAddress –InterfaceIndex 8 -ResetServerAddresses

และรีสตาร์ทอแด็ปเตอร์ของคุณเพื่อรับที่อยู่ IP โดยอัตโนมัติจากเซิร์ฟเวอร์ DHCP:

รีสตาร์ท-NetAdapter -InterfaceAlias ​​Ethernet0

หากคุณเคยกำหนดค่าเกตเวย์เริ่มต้นไว้ก่อนหน้านี้ ให้ลบออก:

Set-NetIPInterface -InterfaceAlias ​​Ethernet0 | Remove-NetRoute -ยืนยัน:$false

จะเปลี่ยนการตั้งค่าที่อยู่ IP และ DNS จากระยะไกลด้วย PowerShell ได้อย่างไร

คุณสามารถใช้ PowerShell เพื่อเปลี่ยนการตั้งค่าที่อยู่ IP หรือเซิร์ฟเวอร์ DNS จากระยะไกลบนคอมพิวเตอร์ระยะไกลหลายเครื่องได้ สมมติว่า งานของคุณคือเปลี่ยนการตั้งค่า DNS สำหรับเซิร์ฟเวอร์ทั้งหมดในคอนเทนเนอร์ AD เฉพาะ (หน่วยขององค์กร) ในการรับรายการคอมพิวเตอร์ในสคริปต์ด้านล่าง จะใช้ Get-ADComputer cmdlet และ WinRM ใช้เพื่อเชื่อมต่อกับคอมพิวเตอร์จากระยะไกล (Invoke-Command cmdlet):

$Servers =Get-ADComputer -SearchBase ‘OU=Servers,OU=Berlin,OU=DE,DC=woshub,DC=cpm’ -Filter '(OperatingSystem -like "Windows Server*")' | ชื่อออบเจ็กต์การเรียงลำดับ
สำหรับแต่ละรายการ ($เซิร์ฟเวอร์ในเซิร์ฟเวอร์ $) {
เขียนโฮสต์ "เซิร์ฟเวอร์ $($ Server.Name)"
เรียกใช้คำสั่ง - ชื่อคอมพิวเตอร์ $ Server.Name -ScriptBlock {
$NewDnsServerSearchOrder ="192.168.2.11","8.8.8.8"
$Adapters =รับ-WmiObject Win32_NetworkAdapterConfiguration | Where-Object {$_.DHCPEnabled -ne 'True' -and $_.DNSServerSearchOrder -ne $null}
Write-Host "การตั้งค่า DNS เก่า:"
$Adapters | ForEach-Object {$_.DNSServerSearchOrder}
$Adapters | สำหรับแต่ละวัตถุ {$_.SetDNSServerSearchOrder($NewDnsServerSearchOrder)} | Out-Null
$Adapters =รับ-WmiObject Win32_NetworkAdapterConfiguration | Where-Object {$_.DHCPEnabled -ne 'True' -and $_.DNSServerSearchOrder -ne $null}
Write-Host "การตั้งค่า DNS ใหม่:"
$Adapters | ForEach-Object {$_.DNSServerSearchOrder}
}
}