声明:本文转载自gnaw0725.blogbus.com,更新网址:http://gnaw0725.blog.51cto.com

   现在的环境是win2003 sp2的域控制器,运行有DHCP服务,目前运行正常。由于服务器服役时间较长,想更换这台服务器。新安装了一台2003 R2 sp2的服务器,提升为域控制器,安装DHCP组件。

通过 netsh dhcp server export C:\dhcp.txt all 命令已经把配置导出。通过netsh dhcp server import C:\dhcp.txt all导入时候报错:
“导入类别 "Microsoft Windows 2000 选项" 时出错。此类别和现存的类别 "Microsoft Windows 2000 选项" 冲突。”

通过DHCP控制台对原有服务器进行“备份”,将文件拷贝到新服务器,通过DHCP控制台进行“还原”,没有报错,但是原有DHCP的配置信息都没有。 请问我的迁移方法是否正确,以上报错信息如何处理,应给采用何种方法进行DHCP服务器的迁移,谢谢

回答:根据您的描述,我对这个问题的理解是:迁移DHCP服务器时出错。一般来说,如果您想从一台Windows 2000服务器上迁移DHCP配置和DHCP数据库,那么您需要用到DHCPexim.exe工具。如果是从一台Windows 2003迁移到另一台Windows 2003,那么您可以不需要用DHCPexim.exe工具。
我看到您是把DHCP迁移到一台Windows 2003 R2的域控上面。我们的建议是您先把DHCP迁移到一台服务器上,然后再将该服务器升级为域控。这样做是因为迁移DHCP需要本地管理员权限,如果提升为域控,则要使用本地管理员就需要更多的步骤。所以我们建议在提升为域控之前来迁移DHCP服务器。
迁移DHCP的具体做法如下:
1. 在源服务器上,以管理员登录,运行命令netsh dhcp server export c:\dhcp.txt all
2. 在目标服务器上,安装DHCP服务:打开控制面板-“添加/删除Windows组件”-“网络组件”,点击“详细”按钮,选择“DHCP”

3. 在目标服务器上,以本地管理员登录,将源服务器上的dhcp.txt文件拷贝到目标服务器的C:\
4. 在目标服务器上,检查DHCP服务已经启动,然后运行命令netsh dhcp server import c:\dhcp.txt all
请注意,该本地管理员只属于本地管理员组,请不要将他放入其他组。
5. 完成后对可以对DHCP服务器授权
如果您是按照以上步骤操作的,但问题依旧,那么从您的报错信息来看,是由于不同版本之间的DHCP的类别或类别的描述不同造成的,这是一个必然的问题,解决的方法是删除2000的类别和类别描述,并且导入windows2003的类别和类别描述。
您可以使用netsh dhcp server dump > dump.txt命令,将两个DHCP server的配置导出到文本,比较两个文本中对Class Name的描述是否有不一致的地方,来确认这个问题。如果确认是上述的问题,这使用类似如下的脚本来删除源服务器DHCP server的Class名或者Class描述,并将目标服务器DHCP SERVER的Class名或者Class描述导入源服务器DHCP。使两个服务器的Class类和描述保持一致。

您可以参考以下脚本来进行修改:
脚本样例
# ------------------ start of resulting script -----------------
# Script to delete and add classes with NETSH
# ===== Delete old classes ======
netsh Dhcp Server 169.168.2.1 Delete Class "Default Routing and Remote Access Class" "User class for remote access clients" 525241532e4d6963726f736f6674 0 b
netsh Dhcp Server 169.168.2.1 Delete Class "Default BOOTP Class" "User class for BOOTP Clients" 424f4f54502e4d6963726f736f6674 0 b
netsh Dhcp Server 169.168.2.1 Delete Class "Microsoft Windows 2000 Options" "Microsoft vendor-specific options for Windows 2000 Clients" 4d53465420352e30 1 b
netsh Dhcp Server 169.168.2.1 Delete Class "Microsoft Windows 98 Options" "Microsoft vendor-specific options for Windows 98 Clients" 4d534654203938 1 b
netsh Dhcp Server 169.168.2.1 Delete Class "Microsoft Options" "Microsoft vendor-specific options applicable to Windows 98 and Windows 2000 Clients" 4d534654 1 b
# ===== End delete old classes =====
# ===== Add new classes =====

netsh Dhcp Server 169.168.2.1 Add Class "Standardrouting- und RAS-Klasse" "User class for remote access clients" 525241532e4d6963726f736f6674 0 b
netsh Dhcp Server 169.168.2.1 Add Class "Standard BOOTP-Klasse" "User class for BOOTP Clients" 424f4f54502e4d6963726f736f6674 0 b
netsh Dhcp Server 169.168.2.1 Add Class "Microsoft Windows 2000-Optionen" "Herstellerspezifische Optionen für Microsoft Windows 2000-Clients" 4d53465420352e30 1 b
netsh Dhcp Server 169.168.2.1 Add Class "Microsoft Windows 98-Optionen" "Herstellerspezifische Optionen für Microsoft Windows 98-Clients" 4d534654203938 1 b
netsh Dhcp Server 169.168.2.1 Add Class "Microsoft-Optionen" "Herstellerspezifische Optionen für Microsoft Windows 98- und Windows 2000-Clients" 4d534654 1 b
#===== End Add new classes =====
# ------------------ end of resulting script -----------------
上述的脚本只是一个参考,它的作用是用德语版windows DCHP server的Class名和描述来替换英文版windows DHCP server的Class名和描述。对于您的情况,您需要比较2个DUMP.TXT文件,来比较CLASS类和描述,将不一样的地方改过来。然后在源服务器上运行该脚本。

请注意:运行脚本可能导致服务器运行不稳定。所以运行此脚本, 之前我们建议您备份完成 DHCP 文件夹和其所有子文件夹。 DHCP 文件夹位于 c:\ SystemRoot \System32\DHCP
具体操作可以参考:http://support.microsoft.com/?id=885687
邵宏 微软全球技术支持中心