方法一
使用“netsh dhcp server export”比“netsh dhcp server dump”的优点是export命令还将从DHCP服务器提取并存储活动租约信息(active lease information);这样,当我们恢复时,活动租约也会从该时间点恢复。 (相反,dump命令只能恢复范围,选项和保留信息(reservation),但不能恢复活动租约信息)。
- 第一种:netsh dhcp server export c:\dhcpconfig.txt all
导入:netsh dhcp server import c:\dhcpconfig.txt all
- 第二种:netsh dhcp server dump > c:\dhcpconfig.txt
导入:netsh exec c:\dhcpconfig.txt
上述的netsh dhcp server export和import确实能够导入导出完成迁移工作,但是其导出的文件是二进制加密过的,
而我的需求是读取租用信息同步到ES表中
方法二
这里可以通过两条netsh命令行直接获取租用信息
#获取当前所有scope
netsh dhcp server show scope
#获取指定scope下的所有地址租用信息
netsh dhcp server scope 192.168.1.0 show clients
通过两条命令的组合即可获取所有地址租用信息
上述命令适合windows server 2008或之前的windows版本,如果你的服务器是windows server 2012及以上版本,可以通过一条powershell命令实现
Get-DhcpServerv4Scope | Get-DhcpServerv4Lease
方法三
偶然在网上找到了一个叫做PowerShell Module for DHCP的powershell模块,它帮我们封装了操作dhcp的基本操作
然而当我执行第一步Import-Module导入该模块时就报错了,调研发现是我的powershell版本太老是1.0.0
windows server 2008 的powershell版本为1.0.0,在其后的R2版本中才更新到了2.0
因此参考Update to powershell 2.0这篇文章下载对应的升级包进行升级
升级完成后确实可以使用了,但是其功能不适合我这个测试环境(需要域服务器使dhcp真正生效,真实环境的话应该没问题)