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操作系统上具有对PowerShell的管理访问权限才能跟随操作。本教程使用Windows Server 2022,但这些命令适用于Windows 10版本及更新版本。
获取网络适配器属性(Get-NetAdapter
)
在故障排除或收集主机的IP地址时,您可以使用传统工具如ping
、ipconfig
或sconfig
。但是使用PowerShell cmdlet,您可以为自动化编写脚本来执行此过程。
打开PowerShell并运行下面的Get-NetAdapter
cmdlet以获取网络适配器及其属性列表,例如您主机的InterfaceAlias和InterfaceIndex。

请注意,您的适配器尚未具有IP地址对象。您需要知道您将要使用哪个。在本教程中,您将使用以太网的适配器别名。
检索地址的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
)
当您需要前面三个cmdlet中学到的信息一次性获取时,Get-NetIPConfiguration
cmdlet会派上用场。这个cmdlet的一个显著特点是它提供更集中的信息。
运行下面的Get-NetIPConfiguration
cmdlet,显示前面运行的cmdlets收集到的IP网络配置。

Get-NetIPConfiguration cmdlet在只有一个网络接口时速度更快。但是,如果您有多个网络接口,则可能需要过滤属性以防止控制台滚动。
手动配置IP、网关和DNS地址
通过迄今为止学到的 cmdlet,现在是时候把你的新知识付诸实践了。在本教程中,您将为 Windows Server 2022 主机分配静态IP地址、网关和DNS服务器。
从此处开始的命令仅更改指定网络适配器的IP地址、网关和DNS设置。您必须为要更改的每个适配器重复这些步骤。
1. 以管理员身份打开 PowerShell,并运行以下命令以列出服务器上的网络适配器。
查找已安装的网络适配器命令
确定要更改的网络适配器。您可以使用适配器的名称或列表中显示的索引号(例如,以太网)。

接下来,运行以下命令Net-NetIPAddress
来更改网络适配器的IPv4地址。 -PrefixLength
设置为 24
表明将IP地址的前24位用于地址的网络部分。请务必相应地替换以下内容:
AdapterName
– 目标网络适配器的名称或索引号码。ServerAddress
– 要添加到网络适配器的IPv4地址。GatewayAddress
– 网关地址应与IPv4地址位于同一子网中。

与New-NetIPAddress cmdlet相关的是 Set-NetIPAddress,它用于更改现有的IP配置,而 Remove-NetIPAddress 则清除配置。
3. 现在运行以下命令Set-DnsClientServerAddress
,此命令不会生成输出,但会更改DNS服务器。确保将AdapterName
替换为您的网络适配器名称(-InterfaceAlias
)或索引号(-InterfaceIndex
)。此命令将您的网络适配器的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/