PowerShell 是 Windows Server 中配置 DHCP 故障转移最可靠、可复用的自动化方式,需分三阶段:一、前提检查(DHCP 角色安装、AD 授权、同子网与端口互通);二、用 Add-DhcpServerv4Failover 在主服务器创建负载均衡或热备关系;三、用 Get-DhcpServerv4Failover 验证状态,并通过 Invoke-DhcpServerv4FailoverReplication 手动同步配置,删除时用 Remove-DhcpServerv4Failover。
powershell 是 windows server 中配置 dhcp 故障转移最可靠、可复用的自动化方式。它能绕过图形界面操作的繁琐步骤,确保配置精确、过程可记录、变更可回溯。关键在于分清三阶段:准备 → 建立关系 → 同步与维护。
一、前提检查与环境初始化
执行任何故障转移命令前,必须确认基础状态合法,否则后续操作会失败或产生不一致:
- 两台服务器均已安装并启动 DHCP-Server 角色(可用
Get-WindowsFeature DHCP* | Where-Object Installed验证) - 两台服务器均已在 Active Directory 中完成 授权(未授权的 DHCP 服务在域环境中默认被禁用)
- 双方 IP 地址处于同一子网(如主:192.168.1.10/24,备:192.168.1.11/24),且 UDP 67/68 端口互通(建议临时关闭防火墙测试或添加入站规则)
- 使用
Get-DhcpServerv4Scope确认主服务器上已存在待启用故障转移的作用域(例如 192.168.1.0/24),且该作用域当前未被其他故障转移关系占用
二、创建故障转移关系(主→备)
使用 Add-DhcpServerv4Failover 一次性建立双向同步关系。注意:该命令需在主服务器上运行,且必须指定伙伴服务器的 FQDN 或 IP(推荐 FQDN,避免 DNS 解析问题):
示例命令(单作用域、负载均衡模式):
PowerShell Add-DhcpServerv4Failover ` -Name "DHCP-FAILOVER-PROD" ` -PartnerServer "dhcp-2025-2.contoso.local" ` -ScopeId 192.168.1.0 ` -SharedSecret "MySecurePass123!" ` -Mode LoadBalance ` -Percentage 50 ` -AutoStateTransition $true ` -StateSwitchInterval 00:05:00
说明:
-
-Mode LoadBalance表示双机共同响应客户端请求;若选HotStandby,则仅主提供服务,备机只在主宕机后接管 -
-SharedSecret是两台服务器间通信加密密钥,必须完全一致,且不能为空 -
-AutoStateTransition $true启用自动状态切换,配合-StateSwitchInterval(检测间隔)实现快速故障识别
三、验证、同步与日常维护
关系建立后,不会自动同步已有租约和部分高级设置(如保留地址、选项类),需手动触发:
- 查看关系状态:
Get-DhcpServerv4Failover -ComputerName dhcp-2025-1.contoso.local,确认State为 Normal,PartnerState不为 Disconnected - 强制同步全部范围配置(含选项、保留、策略):
Invoke-DhcpServerv4FailoverReplication -ComputerName dhcp-2025-1.contoso.local -ScopeId 192.168.1.0 -Force - 后续修改主服务器上的作用域参数(如租期、DNS 服务器列表)后,必须再次运行
Invoke-DhcpServerv4FailoverReplication才能在备机生效 - 删除关系时,务必先在主服务器运行:
Remove-DhcpServerv4Failover -Name "DHCP-FAILOVER-PROD";该操作会从备机上清除对应作用域,但主服务器本地作用域保留
整个流程无需重启服务,所有命令均可封装进 .ps1 脚本,配合任务计划或 CI/CD 流水线实现一键部署。只要网络连通、权限正确、参数无误,5 分钟内即可完成高可用 DHCP 的 PowerShell 自动化上线。


















