קביעת תצורה של הגדרות רשת ב- Windows באמצעות PowerShell: כתובת IP, DNS, שער ברירת מחדל, נתיבים סטטיים
ב- Windows, באפשרותך לנהל את ההגדרות עבור מתאמי הרשת שלך לא רק מממשק המשתמש הגרפי אלא גם משורת הפקודה PowerShell. במאמר זה, נבחן את רכיבי ה- cmdlet החשובים ביותר שבהם באפשרותך להשתמש כדי לגלות את כתובת ה- IP הנוכחית של מתאם רשת, להקצות כתובת IP סטטית, להקצות כתובות IP של שרת DNS או להגדיר ממשק רשת לקבלת תצורת IP משרת DHCP. באפשרותך להשתמש ברכיבי cmdlet אלה כדי לקבוע תצורה של עבודה ברשת הן ב- Windows 10/11 והן ב- Windows Server (או מהדורות Server Core), Hyper-V Server, כדי לשנות את הגדרות ה- IP של מתאמי רשת במחשבים מרוחקים ובקבצי script של אוטומציה של PowerShell.
בעבר,
netsh interface ipv4 הפקודה שימשה לניהול הגדרות רשת מה- CLI. ב- PowerShell 3.0 ואילך, באפשרותך להשתמש במודול NetTCPIP PowerShell המוכלל כדי לנהל הגדרות רשת ב- Windows.
כדי לקבל את רשימת רכיבי ה- cmdlet במודול זה, הפעל את הפקודה הבאה:
get-command -module NetTCPIPמודול זה כולל גם את cmdlet Test-NetConnection שניתן להשתמש בו כדי למצוא יציאות TCP פתוחות במחשבים מרוחקים.
ניהול הגדרות מתאם רשת באמצעות PowerShell
פרט ממשקי רשת זמינים במחשב Windows:
Get-NetAdapterה- cmdlet מחזיר את שם הממשק, את מצבו (למעלה/למטה), כתובת MAC ומהירות יציאה.
בדוגמה זו, יש לי מספר מתאמי רשת במחשב (מלבד החיבור הפיזי, Ethernet0, יש לי ממשקי רשת Hyper-V ו- VMWare Player).
כדי להציג רק ממשקי רשת פיזיים זמינים:
Get-NetAdapter -Physical | ? {$_.Status -eq "Up"}באפשרותך להציג רק פרמטרים מסוימים של מתאם רשת, כגון שם, מהירות, מצב או כתובת MAC:
Get-NetAdapter |Select-Object name,LinkSpeed,InterfaceOperationalStatus,MacAddressייתכן של- Windows יש כמה מתאמי רשת מוסתרים. כדי להציג את כולם, הוסף את הפרמטר IncludeHidden :
Get-NetAdapter -IncludeHiddenהתוצאה תהיה רשימה של כל מתאמי WAN Miniport וירטואליים המשמשים עבור סוגים שונים של חיבורים, כולל VPN. אתחול מחדש של מתאמים אלה מתקן לעתים קרובות שגיאות חיבור VPN מסוימות עם לקוח Windows המובנה. קיימים רכיבי cmdlet נפרדים של PowerShell לניהול חיבורי VPN.
באפשרותך להפנות לממשקי רשת לפי שמותיהם או אינדקסיהם (העמודה אינדקס). בדוגמה שלנו, כדי לבחור את מתאם ה- LAN הפיזי Intel 82574L Gigabit Network Connection, השתמש בפקודה:
Get-NetAdapter -Name Ethernet0או:
Get-NetAdapter -InterfaceIndex 8באפשרותך לשנות את שם המתאם:
Rename-NetAdapter -Name Ethernet0 -NewName LANכדי להשבית ממשק רשת, השתמש בפקודה זו:
Get-NetAdapter -Name Ethernet0| Disable-NetAdapterהפעל את ה- NIC בשמו:
Enable-NetAdapter -Name Ethernet0אם מתאם הרשת כולל מספר VLAN מוגדר, באפשרותך להציג אותו:
Get-NetAdapter | ft Name, Status, Linkspeed, VlanIDכך תוכל לברר את המידע אודות מנהל ההתקן של מתאם הרשת שבו אתה משתמש:
Get-NetAdapter | ft Name, DriverName, DriverVersion, DriverInformation, DriverFileName
פרט את המידע אודות מתאמי רשת פיזיים (חריץ PCI, אפיק וכו'):
Get-NetAdapterHardwareInfoהשבת את פרוטוקול IPv6 עבור ממשק הרשת:
Get-NetAdapterBinding -InterfaceAlias Ethernet0 | Set-NetAdapterBinding -Enabled:$false -ComponentID ms_tcpip6השבת את פרוטוקול NetBIOS עבור ממשק רשת:
Set-NetAdapterBinding -Name Ethernet0 -ComponentID ms_netbios -AllBindings -Enabled $Trueכיצד לקבל הגדרות כתובת IP באמצעות PowerShell?
כדי לקבל הגדרות מתאם רשת עדכניות ב- Windows (כתובת IP, DNS, שער ברירת מחדל):
Get-NetIPConfiguration -InterfaceAlias Ethernet0כדי להציג מידע מפורט יותר אודות תצורת TCP/IP של ממשק הרשת, השתמש בפקודה
Get-NetIPConfiguration -InterfaceAlias Ethernet0 -Detailedבמקרה זה, מוצג מיקום הרשת שהוקצה (פרופיל) (NetProfile.NetworkCategory) של הממשק, הגדרות MTU (NetIPv4Interface.NlMTU), אם השגת כתובת IP מ- DHCP מופעלת (NetIPv4Interface.DHCP) ומספר מידע שימושי אחר.
כדי לקבל את כתובת ממשק IPv4 בלבד:
(Get-NetAdapter -Name ethernet0 | Get-NetIPAddress).IPv4Addressהחזר את הערך של כתובת ה- IP של הממשק בלבד:
(Get-NetAdapter -Name ethernet0 | Get-NetIPAddress).IPv4Addressבעת העתקת קבצים למחשבים וירטואליים, מנהלי מערכת רבים הבחינו בביצועי רשת ירודים ב- Windows Server 2019 עם תפקידי Hyper-V זמינים. במקרה זה, החזרת הגדרות מחסנית TCP בחזרה להגדרות שהיו בשימוש ב- Windows Server 2016 יסייע לפתור את הבעיות:
Set-NetTCPSetting -SettingName DatacenterCustom,Datacenter -CongestionProvider DCTCP
Set-NetTCPSetting -SettingName DatacenterCustom,Datacenter -CwndRestart True
Set-NetTCPSetting -SettingName DatacenterCustom,Datacenter -ForceWS Disabledהצג רשימה של פרוטוקולי הרשת שניתן להפוך לזמינים או ללא זמינים עבור מתאם רשת:
Get-NetAdapterBinding -Name ethernet0 -IncludeHidden -AllBindingsName 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
כדי להציג הפעלות TCP/IP פעילות במחשב, השתמש ב- cmdlet Get-NetTCPConnection.
הגדרת כתובת IP סטטית ב- Windows באמצעות PowerShell
בוא ננסה להגדיר כתובת IP סטטית עבור ה- NIC. כדי לשנות כתובת IP, מסיכת רשת ושער ברירת מחדל עבור ממשק רשת Ethernet0, השתמש בפקודה:
Get-NetAdapter -Name Ethernet0| New-NetIPAddress -IPAddress 192.168.2.50 -DefaultGateway 192.168.2.1 -PrefixLength 24 באפשרותך להגדיר כתובת IP באמצעות מבנה מערך (באופן חזותי יותר):
$ipParams = @{
InterfaceIndex = 8
IPAddress = "192.168.2.50"
PrefixLength = 24
AddressFamily = "IPv4"
}
New-NetIPAddress @ipParamsבאפשרותך להשתמש ב- New-NetIPAddress כדי להוסיף כתובת IP (כינוי) שניה למתאם רשת.
אם כתובת IP סטטית כבר מוגדרת ויש לשנותה, השתמש ב- cmdlet Set-NetIPAddress:
Set-NetIPAddress -InterfaceAlias Ethernet0 -IPAddress 192.168.2.90כדי להשבית קבלת כתובת IP מ- DHCP עבור המתאם, הפעל את הפקודה:
Set-NetIPInterface -InterfaceAlias Ethernet0 -Dhcp Disabledהסר כתובת IP סטטית:
Remove-NetIPAddress -IPAddress "xxx.xxx.xxx.xxx"הגדרת כתובות IP של שרת DNS ב- Windows באמצעות PowerShell
כדי להגדיר את כתובות ה- IP המועדפות והחלופיות של שרת DNS ב- Windows, השתמש ב- cmdlet Set-DNSClientServerAddress. לדוגמה:
Set-DNSClientServerAddress -InterfaceIndex 8 -ServerAddresses 192.168.2.11,10.1.2.11באפשרותך גם לציין כתובות IP של שרתי שמות DNS באמצעות מערך:
$dnsParams = @{
InterfaceIndex = 8
ServerAddresses = ("8.8.8.8","8.8.4.4")
}
Set-DnsClientServerAddress @dnsParamsלאחר שינוי הגדרות ה- DNS, באפשרותך לרוקן את המטמון של פותר ה- DNS (שווה ערך ל-
ipconfig /flushdns):
Clear-DnsClientCacheהצגת תוכן מטמון DNS ב- Windows::
Get-DnsClientCacheניהול טבלאות ניתוב באמצעות PowerShell
cmdlet Get-NetRoute משמש להצגת טבלת הניתוב.
קבל את נתיב שער ברירת המחדל עבור ממשק רשת פיזי ב- Windows:
Get-NetAdapter -Physical | ? {$_.Status -eq "Up"}| Get-netroute| where DestinationPrefix -eq "0.0.0.0/0"כדי להוסיף נתיב חדש, השתמש ב- cmdlet New-NetRoute:
New-NetRoute -DestinationPrefix "0.0.0.0/0" -NextHop "192.168.2.2" -InterfaceIndex 8פקודה זו מוסיפה נתיב קבוע לטבלת הניתוב (בדומה ל-
route -p add). אם ברצונך להוסיף מסלול זמני, הוסף את
-PolicyStore "ActiveStore"אפשרות. מסלול זה יימחק לאחר הפעלה מחדש של Windows.
הסרת נתיב מטבלת הניתוב:
Remove-NetRoute -NextHop 192.168.0.1 -Confirm:$FalsePowerShell: שינוי מתאם מכתובת IP סטטית ל- DHCP
כדי לקבוע את תצורת המחשב לקבלת כתובת IP דינאמית עבור מתאם הרשת משרת DHCP, הפעל פקודה זו:
Set-NetIPInterface -InterfaceAlias Ethernet0 -Dhcp Enabledנקה את הגדרות שרת ה- DNS:
Set-DnsClientServerAddress -InterfaceAlias Ethernet0 -ResetServerAddressesוהפעל מחדש את מתאם הרשת כדי לקבל באופן אוטומטי כתובת IP משרת DHCP:
Restart-NetAdapter -InterfaceAlias Ethernet0אם הגדרת בעבר שער ברירת מחדל, הסר אותו:
Set-NetIPInterface -InterfaceAlias Ethernet0| Remove-NetRoute -Confirm:$falseאם עליך לאפס את כל הגדרות IPv4 עבור ממשקי הרשת של המחשב ולהחליף אותן כדי לקבל כתובת IP דינמית מ- DHCP, השתמש בסקריפט הבא:
$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
}שנה כתובות DNS ו- IP מרחוק במחשבים מרובים באמצעות PowerShell
באפשרותך להשתמש ב- PowerShell כדי לשנות מרחוק את כתובת ה- IP או הגדרות שרת ה- DNS במחשבים מרוחקים מרובים.
נניח שהמשימה שלך היא לשנות את הגדרות ה- DNS בכל המארחים של Windows Server ביחידה הארגונית הספציפית של AD (OU). קובץ ה- script הבא משתמש ב- cmdlet Get-ADComputer כדי לקבל את רשימת המחשבים מ- Active Directory ולאחר מכן מתחבר למחשבים המרוחקים באמצעות WinRM (נעשה שימוש ב- cmdlet Invoke-Command):
$Servers = Get-ADComputer -SearchBase ‘OU=Servers,OU=Berlin,OU=DE,DC=a-d,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}
}
}








