A few months ago, I wrote a post on how to migrate a DHCP Server database from Windows 2000 to Windows Server 2008. As Windows Server 2008 R2 has since released, I wanted to update the information on this subject. The process has not changed in any way from my original post. I am publishing this to confirm the original steps will work whether the target server is running Windows Server 2008 or Windows Server 2008 R2.
These steps describe how to move a Dynamic Host Configuration Protocol (DHCP) database from a computer that is running Microsoft Windows NT Server 4.0 or Microsoft Windows 2000 to a computer that is running Windows Server 2008 or Windows Server 2008 R2.
Note These steps should not be used to migrate to or from a clustered DHCP server. There is no direct migration path from a Windows 2000 cluster to Windows Server 2008 or Windows Server 2008 R2. A Windows 2000 cluster must be upgraded to Windows Server 2003 before DHCP can be migrated to Windows Server 2008 or Windows Server 2008 R2. For more information on migrating DHCP from a cluster on Windows Server 2003 or Windows Server 2008 to Windows Server 2008 R2, please see the following TechNet article here.
Note You can use the Microsoft Windows backup utility (ntbackup.exe) to back up and restore the DHCP database on a single server. Do not use the backup utility to migrate or to move a DHCP database from one DHCP server to another.
Stop the DHCP Server service on the server:
Log on to the source DHCP server by using an account that is a member of the local Administrators group.
Click Start , click Run , type cmd in the Open box, and then click OK .
At the command prompt, type net stop dhcpserver , and then press ENTER. You receive a "The Microsoft DHCP Server service is stopping. The Microsoft DHCP Server service was stopped successfully" message.
Type exit , and then press ENTER.
Compact the DHCP database by using the JetPack utility:
At the command prompt, type cd %systemroot%\system32\dhcp , and then press ENTER.
Type jetpack dhcp.mdb temp.mdb , and then press ENTER.
After the database is compacted successfully, type exit , and then press ENTER.
Export the DHCP database by using the DHCP Export Import utility (Dhcpexim.exe). You can obtain this utility from the Windows 2000 Resource Kit Supplement 1. You can also visit the following Microsoft Web site to obtain Dhcpexim.exe:
To export the database:
Install the Dhcpexim.exe utility, and then start the Dhcpexim.exe utility.
At the Welcome to DHCP Export Import tool screen, click Export configuration of the local service to a file , and then click Ok .
In the File name box, type the file name for the exported file, and then click Save . For example, type dhcpdatabase.txt .
Click the scope or scopes that you want to export, click to select the Disable the selected scopes on local machine before export check box, and then click Export .
Click OK .
Disable the DHCP Server service on the server. Disabling the DHCP Server service prevents the service from starting after the database has been transferred. To disable the DHCP Server service:
Click Start , point to Settings , click Control Panel , and then double-click Services .
In the Service list, click Microsoft DHCP Server , click Startup , click Disabled , and then click OK .
If the service is started, click Stop , and then click Yes to confirm the stopping of the service.
Click Close to close the Services dialog box.
Important Dhcpexim.exe is required to move the database successfully from a server that is running Windows 2000 to a server that is running Windows Server 2008 or Windows Server 2008 R2. Netsh commands for DHCP are not available in Windows NT 4.0. Note If only the configuration (not the database) is required, use the following command (instead of Dhcpexim.exe) on the Windows 2000-based server that you want to export from. (Do not use Dhcpexim.exe.)
netsh dhcp dump > C:\dhcp.txt
where C:\dhcp.txt is the name and path of the export file that you want to use. Note The export option does not exist in the netsh command on Windows 2000 Server. The netsh dhcp server dump and netsh dhcp server import commands are not compatible. If you try to import the data that is created by netsh dhcp server dump > C:\dhcp.txt by using netsh DHCP server import > C:\dhcp.txt , you receive the following error message on the Windows Server 2008 or Windows Server 2008 R2-based computer:
The request is not supported.
You can migrate the exported configuration file to the new Windows Server 2008/R2 server by using the following command:
netsh exec c:\dhcp.txt
To install the DHCP Server service on an existing Windows Server 2008/R2-based computer:
Click Start , point to All Programs , point to Administrative Tools , and then click Server Manager .
In the console tree of Server Manager, right-click Roles , and then click Add Roles .
In the Add Roles Wizard, click Next .
On the Select Server Roles page, click to select the DHCP Server check box, and then click Next .
Review the information on the Introduction to DHCP Server page, and then click Next .
Follow the instructions in the Add Roles Wizard to complete the installation.
Note You may receive an "access denied" message during this procedure if you are not a member of the Backup Operators group. If you receive an "Unable to determine the DHCP server version for server" error message, make sure that the DHCP Server service is running on the server and that the user logged on is a member of the local Administrators group.
Important Do not use Dhcpexim.exe to import a DHCP database in Windows Server 2008 or Windows Server 2008 R2. Additionally, if the target Windows Server 2008 / Windows Server 2008 R2 server is a member server, and if you plan to promote it to a domain controller, we suggested that you perform the DHCP database migration before promoting it to a domain controller. Although you can migrate the DHCP database to a Windows 2008/R2 domain controller, the migration to a member server will be easier because of the existence of the local administrator account.
Log on as a user who is an explicit member of the local Administrators group. A user account in a group that is a member of the local Administrators group will not work. If a local Administrators account does not exist for the domain controller, restart the computer in Directory Services Restore Mode, and use the administrator account to import the database as described later in this section.
Copy the exported DHCP database file to the local hard disk of the Windows Server 2008/R2-based computer.
Verify that the DHCP service is started on the Windows Server 2008/R2-based computer.
At the command prompt, type netsh dhcp server import c:\dhcpdatabase.txt all , and then press ENTER, where c:\dhcpdatabase.txt is the full path and file name of the database file that you copied to the server. Note When you try to export a DHCP database from a Windows 2000 domain controller to a Windows Server 2008/R2 member server of the domain, you may receive the following error message:
Error initializing and reading the service configuration - Access Denied
Note You must have local administrator permissions to import the data.
To resolve this issue, add the Windows Server 2008/R2 DHCP server computer to the DHCP Admins group at the Enterprise level.
If the "access is denied" error message occurs after you add the Windows Server 2008/R2 DCHP server computer to the DHCP Admins group at the Enterprise level that is mentioned in step 4, verify that the user account that is currently used to import belongs to the local Administrators group. If the account does not belong to this group, add the account to that group, or log on as a local administrator to complete the import.
After you receive the message that the command completed successfully, quit the command prompt.
Click Start , point to All Programs , point to Administrative Tools , and then click DHCP . Note You must be logged on to the server by using an account that is a member of the Administrators group. In an Active Directory domain, you must be logged on to the server by using an account that is a member of the Enterprise Administrators group.
In the console tree of the DHCP snap-in, expand the new DHCP server. If there is a red arrow in the lower-right corner of the server object, the server has not yet been authorized.
Right-click the server object, and then click Authorize .
After several moments, right-click the server again, and then click Refresh . A green arrow indicates that the DHCP server is authorized.
- Mike Platts
How about migrating some scopes from a 2003R2 server to an active 2008R2 DHCP server?
2003R2 and 2008 migrations are covered here: