Windows Server DHCP数据库默认每60分钟自动备份但不清理旧文件,需通过脚本将备份移至非系统盘并定期清理,同时必须验证还原有效性。
windows server 中 dhcp 数据库默认已启用自动备份,但不自动清理旧备份,需手动或通过脚本定期清理,否则备份文件持续堆积可能耗尽磁盘空间。配置重点在于确认备份机制有效、调整备份间隔、并将备份文件移出系统盘(如存到网络共享或另一物理盘),再配合计划任务实现安全清理。
确认并调整自动备份间隔
DHCP 服务默认每 60 分钟将数据库(dhcp.mdb)备份至 %SystemRoot%System32DhcpBackup。该行为由注册表控制:
- 路径:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesDHCPServerParameters - 键值:
BackupInterval(单位:秒,默认为 3600) - 修改后需重启 DHCP Server 服务生效
更改默认备份位置(强烈建议)
系统默认备份到系统盘且与手动备份共用同一文件夹,存在被覆盖或随系统盘故障一并丢失的风险:
- 不能直接修改注册表切换路径,必须通过“手动备份”+“计划任务”替代原生自动备份
- 推荐做法:用 Windows 自带的
PowerShell或robocopy每小时执行一次备份,并指定独立路径(如D:DHCP_Backup或\NASDHCP_BK) - 示例命令(保存为
dhcp-backup.ps1):net stop dhcpserver<br>robocopy "%SystemRoot%System32Dhcp" "D:DHCP_Backup$(Get-Date -Format 'yyyyMMdd-HHmm')" *.mdb /copyall /r:1 /w:1<br>net start dhcpserver
设置定期清理旧备份的计划任务
自动备份本身不清理历史文件,需额外建立清理逻辑:
- 在备份脚本末尾添加清理命令,例如保留最近 7 天备份:
Get-ChildItem "D:DHCP_Backup*" -Directory | Where-Object {$_.CreationTime -lt (Get-Date).AddDays(-7)} | Remove-Item -Recurse -Force - 使用“任务计划程序”创建每日凌晨 2 点触发的任务,运行该 PowerShell 脚本
- 注意:脚本需以本地系统账户或具有管理员权限的账户运行,且勾选“不管用户是否登录都要运行”和“使用最高权限”
验证备份有效性与还原流程
备份不是存进去就完事,必须验证可还原:
- 手动还原测试:停止 DHCP 服务 → 将某次备份中的
dhcp.mdb复制覆盖到%SystemRoot%System32Dhcp→ 启动服务 → 检查作用域、保留地址、租约列表是否完整 - 协调操作不可替代备份:当数据库损坏后自动还原失败时,“协调”仅能同步注册表与数据库间租约状态,无法恢复已删除的作用域或选项配置
- 建议每月至少一次完整还原演练,并记录日志


















