最近遇到一个DHCP服务器升级的需求,从Windows Server 2003升级到Windows Server 2012 R2。搜集、测试总结了两种方法,第一种是采用微软的最佳实践,使用Windows 迁移工具迁移DHCP角色到Windows Server 2012 R2上,第二种是使用Netsh将DHCP配置信息直接导出导入;
一 微软最佳实践
1.1 在Windows Server 2003服务器上安装如下PowerShell和.Net Framework;
Windows PowerShell 1.0 本地化为 Windows Server 2003 和 Windows XP 的安装程序包
http://support.microsoft.com/kb/926140
Windows PowerShell 2.0 Windows Management Framework Core 程序包提供了适用于 IT 专业人员的已更新管理功能。(KB968930)
http://www.microsoft.com/zh-cn/download/details.aspx?id=4045
Microsoft .NET Framework 3.5 SP1
http://www.microsoft.com/zh-cn/download/details.aspx?id=25150
1.2 在Windows Server 2012上安装DHCP角色和Windows Server 迁移工具;
1.3 在Windows Server 2012上打开运行Windows Server迁移工具,创建部署包;
进入ServerMigrationTools目录,运行
cd c:\Windows\system32\ServerMigrationTools
查看创建部署文件夹方法:.\SmigDeploy.exe /?
创建一个可复制到运行Windows Server 2003计算机的迁移工具部署包:
.\SmigDeploy.exe /package /architecture x86 /os WS03 /path c:\SMIGDeploy
1.4 将创建好的迁移工具部署包复制到window Server 2003上,打开运行SmigDeploy.exe;
注:第一次运行SmigDeploy.exe正常,如果再次运行的时候就会报错,需要先撤销Windows服务器迁移工具在该服务器上的注册信息;
C:\SMIGDeploy\SMT_ws03_x86\SmigDeploy.exe /unregister
1.5 导出Windows Server 2003上DHCP的配置数据;
查看Windows Server 2003上可以迁移的功能角色:Get-SmigServerFeature
运行命令导出DHCP设置(自行设置迁移数据秘钥)
Export-SmigServerSetting –FeatureId dhcp -path c:\DHCPData –Verbose
1.6 将导出的DHCP数据拷贝到Windows Server 2012上,运行命令导入DHCP配置数据;
在Windows Server 2012上打开PowerShell,运行以下命令导入迁移工具命令:
Add-PSSnapin microsoft.Windows.Servermanager.migration
运行以下命令导入DHCP配置数据,然后启动DHCP服务:
Import-SmigServerSetting -FeatureId DHCP -Force -Path C:\DHCPData
注:在Windows Server 2012上导入DHCP数据的时候可能会遇到以下错误,这是因为Windows Server 2003和Windows Server 2012上默认的系统用户界面语言设置不一致。
查看系统默认UI语言,在Windows Server 2012上可用命令(dism /online /get-intl)查看,在Windows Server 2003上可在注册表
HKEY_LOCAL_MACHINE\SYSTEM\Controlset001\control\nls\language中查看installLanguage值,0409表示英文,0804表示中文
解决方法,可以修改Windows Server 2012上的系统UI语言,与Windows Server2003保持一致,当然也可以修改Windows Server 2003的系统UI语言,不过需要重新导出DHCP数据。
操作,确保Windows Server 2012上安装了中文和英文语言包,然后在注册表HKEY_LOCAL_MACHINE\SYSTEM\Controlset001\control\nls\language中修改installLanguage值,保持与Windows Server 2003一致,重启服务器后再进行DHCP数据导入操作;
二 使用Netsh迁移DHCP数据
2.1 因为Windows Server 2003和Windows Server 2012中DHCP类发生了改变,所以无法直接使用Netsh导出、导入DHCP配置文件;
2.2 在Windows Server 2003上删除DHCP配置文件中的“添加类”;
使用命令导出DHCP配置:netsh dhcp Server dump >c:\dump_2003.txt
打开导出的配置文件,找到“添加类”,在cmd中运行命令删除5项默认的类别:
Netsh dhcp Server delete class “默认路由和远程访问类别” “远程访问客户端的用户类别” 525241532e4d6963726f736f6674 0 b
Netsh dhcp Server delete class “默认 BOOTP 的类别” “BOOTP 客户端的用户类别” 424f4f54502e4d6963726f736f6674 0 b
Netsh dhcp Server delete class “Microsoft Windows 2000 选项” “Windows 2000 客户端的 Microsoft 供应商特定选项” 4d53465420352e30 1 b
Netsh dhcp Server delete class “Microsoft Windows 98 选项” “Windows 98 客户端的 Microsoft 供应商特定选项” 4d534654203938 1 b
Netsh dhcp Server delete class “Microsoft 选项” “适用于 Windows 98 和 Windows 2000 客户端的 Microsoft 供应商特定选项” 4d534654 1 b
使用命令重新导出配置文件,确认DHCP中默认类已删除;
2.3 在Windows Server 2003上,将Windows Server 2012中DHCP配置文件的“添加类”添加到服务器中;
在Windows Server 2012中使用命令导出DHCP配置文件:
打开导出的配置文件,找到“添加类”,在Windows Server 2003 cmd中运行命令添加Windows Server 2012 DHCP中6项默认的类别:
Netsh dhcp Server Add Class “默认路由和远程访问类” “远程访问客户端的用户类” 525241532e4d6963726f736f6674 0 b
Netsh dhcp Server Add Class “默认的网络访问保护级别” “受限访问客户端的默认特殊用户类” 4d5346542051756172616e74696e65 0 b
Netsh dhcp Server Add Class “默认 BOOTP 类” “BOOTP 客户端的用户类” 424f4f54502e4d6963726f736f6674 0 b
Netsh dhcp Server Add Class “Microsoft Windows 2000 选项” “针对 Windows 2000 及更高版本客户端的 Microsoft 供应商特定选项” 4d53465420352e30 1 b
Netsh dhcp Server Add Class “Microsoft Windows 98 选项” “Windows 98 客户端的 Microsoft 供应商特定选项” 4d534654203938 1 b
Netsh dhcp Server Add Class “Microsoft 选项” “适用于所有 Windows 客户端的 Microsoft 供应商特定选项” 4d534654 1 b
在Windows Server 2003上使用命令重新导出配置文件,确认DHCP中默认类已添加;
2.4 使用Netsh命令导出、导入DHCP配置文件;
在Windows Server 2003上使用命令导出DHCP配置文件:
netsh dhcp Server export c:\dhcpdb all
在Windows Server 2012上使用命令导入DHCP配置文件:
netsh dhcp Server import c:\dhcpdb all
本站所有文章,如无特殊说明或标注,均为本站原创发布。
任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。
如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。