Windows 11 Pro ISO文件在哪下载最新版?如何下载原装纯净版Win11 ?点击进入 持续更新!
下面的PowerShell功能可以将一个或多个服务器NIC的DHCP保留转换为固定IP配置。除了IP地址和子网掩码,它还将处理通常为固定IP配置的其他设置,例如默认网关和DNS服务器。
Get-IPAddressPretty函数^
在整个这篇文章中,IP地址将被更改并经常检查。每当您执行此操作时,如果只希望查看相关信息,则可以运行以下命令:
1
2
3
4
|
Get–NetIPAddress –AddressFamily IPv4 –CimSession Mgmt,DC2 `
| select PSComputerName, InterfaceAlias, IPAddress, PrefixLength, PrefixOrigin `
| Where–Object InterfaceAlias –NotLike “*Loopback*” `
| Format–Table –Wrap –AutoSize
|
结果如下图所示:
这将提供您需要用于我们目的的所有信息(计算机名称,NIC名称,IP地址,子网掩码,以及它是手动还是通过DHCP分配)。唯一的问题是每次键入的命令都很长。
为了避免所有类型的输入,我创建了一个函数,该函数返回相同的信息,而无需我们想要和不想要的所有东西。我称它为Get-IPAddressPretty:
如您所见,结果与上面相同,但是命令短得多。默认情况下,它显示计算机上所有网卡的IPv4地址。如果需要,您可能会更细化。
有了这个,让我们忙吧!
将DHCP保留转换为静态IP
首先,第一件事:这将适用于Microsoft DHCP服务器。它不能在也配置为小型子网的DHCP服务器或其他类型的DHCP服务器的Cisco交换机上使用。但是,如果其他风味支持PowerShell,则可以改编功能/命令。
有了这个小的免责声明,让我们首先看一下创建保留的函数的逻辑。
- 您提供要为其创建预订的计算机名称和网络接口。如果它是一台具有多个NIC的计算机,则可以选择将其所有NIC的当前DHCP保留转换为固定IP配置。
- 您还需要提供在其上创建预留的DHCP服务器。该功能提供服务器名称的自动完成功能(使用Tab或Ctrl + Space)。
- 如果提供了特定的NIC,则该功能将验证特定服务器上NIC的名称。如果未提供有效名称,则该函数将发出警告,要求您提供有效的NIC名称并停止。
- 验证NIC后,该功能将检索该NIC的MAC地址。
- 该功能根据MAC地址检查所选DHCP服务器上是否有预留。如果没有,该功能将通知用户并停止。
- 同样,如果有一个以上的保留(例如,两个或两个以上在不同范围内的保留),该功能将警告用户并停止。通常,这表示配置错误(有人在创建新预订之前没有清理旧预订)。
- 假定已找到该NIC的保留,则该功能将使用保留中定义的IP地址配置NIC。它还根据DHCP作用域分配子网掩码。
- 对于默认网关,此功能从最细粒度的级别到最广泛的级别寻找以下设置:
- 它首先检查预订选项。
- 然后,它检查范围选项(如果在保留级别未配置任何内容)。
- 最后,它检查服务器选项(如果在保留和作用域级别未定义任何内容)。
- 如果DHCP服务器在任何级别都没有为默认网关定义选项,则NIC不会配置默认网关。
- DNS使用相同的逻辑(用于默认网关):从最精细的设置检查到最广泛的设置(保留>范围>服务器)。
- 一旦配置了IP地址,子网掩码和其他选项,就将NIC的DHCP禁用。
- 最后,从DHCP服务器中删除对NIC的保留。
Convert-DhcpV4ReservationToStaticIp函数
在下面,您将看到实现此目标的代码:
现在您知道Convert-DhcpV4ReservationToStaticIp的作用,让我们来看一下它的作用。
分步示例
首先,让我们看一看客户端计算机的IP配置(称为“ Mgmt”)。
1
2
|
# Get the current IP address
Get–IPAddressPretty –CimSession Mgmt
|
请注意,NIC“私有”地址的PrefixOrigin是DHCP。让我们看看DHCP服务器上是否有计算机Mgmt的保留。
实际上,我们的计算机(Mgmt)在DHCP服务器上有保留。现在,使用Convert-DhcpV4ReservationToStaticIp将此保留转换为静态IP。我们将使用详细模式来查看有关该功能做什么的更多详细信息。
将DHCP保留转换为静态IP
1
|
Convert–DhcpV4ReservationToStaticIp –ComputerName Mgmt –InterfaceAlias Private –DhcpServer dc2.ha.lab –Verbose
|
如您在屏幕快照中所见,详细模式描述了该功能执行的所有步骤。现在,让我们检查计算机的IP配置:
1
|
Get–IPAddressPretty –CimSession Mgmt
|
第一次运行Get-IPAddressPretty和现在运行NIC之间的区别是NIC的Prefix Origin是Manual而不是DHCP。我们也来看看NIC属性。
如您所见,IP和DNS配置是静态的。它们与DHCP保留中定义的相同(如上图所示,从DHCP管理控制台中看到)。
说到DHCP保留…
预留已从DHCP服务器中删除。
此时,如果我们尝试再次运行该命令,将会收到一条错误消息,指出没有为我们的计算机保留指定的NIC。
该命令警告未找到服务器/ NIC的预留空间
1
|
Convert–DhcpV4ReservationToStaticIp –ComputerName Mgmt –InterfaceAlias Private –DhcpServer dc2.ha.lab –Verbose
|
运行命令将引发警告,指出未为我们的计算机/ NIC找到保留