A common SysAdmin task involves managing a PowerShell IP configuration. Typically, one performs this task using the GUI, which is OK. But PowerShell can do the same job and more, which you can put into scripting.
在本教程中,您將學習如何使用PowerShell中的一些網絡管理cmdlet來幫助管理Windows主機的IP地址、網關和DNS設置。
繼續閱讀,提升您的PowerShell IP配置命令的網絡故障排除技能!
先決條件
本教程包括實踐演示。您需要在現代Windows OS上擁有對PowerShell的管理訪問權限,以便跟隨操作。本教程使用Windows Server 2022,但這些命令適用於Windows 10版本及更高版本。
獲取網絡適配器屬性(Get-NetAdapter
)
在疑難排解或收集主機的IP地址時,您可以使用傳統工具,如ping
、ipconfig
或sconfig
。但是,使用PowerShell cmdlet,您可以為自動化編寫腳本。
打開PowerShell並運行下面的Get-NetAdapter
cmdlet以獲取網絡適配器及其屬性的列表,例如您主機的InterfaceAlias和InterfaceIndex。

請注意,您的適配器尚未具有IP地址對象。您需要知道將要使用的適配器。在本教程中,您將使用Ethernet的適配器別名。
檢索地址 PowerShell IP配置(Get-NetIPAddress
)
您之前使用一個命令列出了所有的網路介面。但是您也可以通過 Get-NetIPAddress
命令來列出屬性值和您主機的當前 IP 地址。
運行下面的命令(不帶參數)來顯示每個適配器的地址和 PowerShell IP 配置。

現在,運行以下命令來縮小輸出(Select-Object)到以太網的 InterfaceAlias
和 IPAddress
。

獲取 IP 路由信息(Get-NetRoute
)
IP 地址使主機能夠與同一網路上的其他主機通信。但是當主機需要與該網路之外的主機通信時會發生什麼情況?
A gateway address is necessary, and the Get-NetRoute
cmdlet is what you need. This cmdlet provides information that previous cmdlets you have learned about do not.
運行下面的 Get-NetRoute
命令來檢查 Ethernet
介面的當前網關(NextHop
)。
通常,DHCP 服務器提供網關地址。您稍後需要在本文中捕獲此地址。

獲取 DNS 伺服器 IP 地址(Get-DnsClientServerAddress
)
DNS對於內部和外部網路的名稱解析都是必需的。如果沒有DNS,您將不得不記住網路上每個主機的網址。
但很可能您的主機已經通過DHCP配置了DNS。您可以使用Get-DnsClientServerAddress
cmdlet來驗證當前的配置。
通過將輸出重定向到文本文件或記下來記錄這些IP地址。您稍後需要重新指定這些DNS伺服器地址,本教程中會進一步介紹。

獲取IP網路配置(Get-NetIPConfiguration
)
當您需要以一次性獲取前三個cmdlets中學到的信息時,Get-NetIPConfiguration
cmdlet就能滿足需求。這個cmdlet的一個顯著特點是它提供更專注的信息。
運行下面的Get-NetIPConfiguration
cmdlet,顯示由您之前運行的cmdlets收集的IP網路配置。

Get-NetIPConfiguration cmdlet 僅在您只有一個網路介面時才會更快。但如果您有多個網路介面,您可能需要過濾屬性以防止控制台滾動。
手動配置 IP、閘道和 DNS 地址
通過迄今為止學到的 cmdlet,是時候把你的新知識付諸實踐了。對於本教程,您將為 Windows Server 2022 主機分配靜態 IP 地址、閘道和 DNS 伺服器。
從這一點開始的命令僅更改指定網絡適配器的 IP 地址、閘道和 DNS 設置。您必須為每個要更改的適配器重複這些步驟。
1. 以管理員身份開啟 PowerShell,運行以下命令以列出伺服器上的網絡適配器。
查找已安裝的網絡適配器命令
識別您要更改的網絡適配器。您可以使用適配器的名稱或列表中顯示的索引號(例如,以太網)。

2. 接下來,執行以下Net-NetIPAddress
命令來更改您網路適配器的IPv4地址。 -PrefixLength
的值為 24
,表示該地址的前 24 個位元用於地址的網路部分。請務必相應地更換以下內容:
AdapterName
– 您目標網路適配器的名稱或索引號。ServerAddress
– 要添加到網路適配器的IPv4地址。GatewayAddress
– 網關地址應該與IPv4地址位於同一子網中。

與New-NetIPAddress cmdlet相關的是 Set-NetIPAddress,它更改現有的IP配置,而 Remove-NetIPAddress則清除配置。
3. 現在,執行以下Set-DnsClientServerAddress
命令,它不會產生輸出,但會更改 DNS 伺服器。請確保您使用您的網路適配器的名稱(-InterfaceAlias
)或索引號碼(-InterfaceIndex
)替換AdapterName
。此命令將您的網路適配器的 DNS 伺服器設置為 Google 的公共 DNS 伺服器8.8.8.8
和8.8.4.4
。但您可以指定任何有效的 DNS 伺服器 IP 位址。
請注意,使用 Set-DnsClientServerAddress cmdlet,您可以指定一個或多個內部或面向公眾的 DNS IP 位址。
4. 最後,執行以下Restart-NetAdapter
命令,它不會在控制台上列印輸出,但會重新啟動您的網路適配器並應用更改。恭喜!您剛剛手動配置了您的網路介面,使用自定義配置。
如果您的主机只有一个适配器,就像本教程中一样,根据您的连接方式,您可能会暂时失去连接。完成这最后一步是开始使用新的IP地址的关键。
结论
了解您的网络配置对于保持健康的网络至关重要。好消息是,您已经了解到了PowerShell IP配置命令中四个基本的网络配置命令。
凭借这些新的知识,您可以轻松地使用PowerShell IP配置功能创建脚本,作为更广泛的服务器配置过程的一部分。
接下来该做什么呢?为什么不尝试调整更高级的选项,如MTU、添加更多路由或将适配器重置为使用DHCP而不是静态地址?
Source:
https://adamtheautomator.com/powershell-ip-configuration/