Windows Server 2008 R2 introduces a new command-line utility, DISM, the Deployment Image Servicing and Management tool. One of DISM’s many useful features is the ability to use its edition-servicing commands to upgrade an R2 installation without requiring install media. This is functionally equivalent to Windows Anytime Upgrade in a Windows 7 client install, and can be performed on both an online or offline image, and on both full Server and Server Core installations.
Upgrades using the edition servicing method are quick, and don’t require a full reinstall of the operating system. Deployed roles and features, and other characteristics (machine name, user and admin accounts, etc) are persisted forward. Because the target editions are staged within the image, only the updates necessary to move from edition to the next are applied.
The upgrade options are limited to edition families, and are irreversible – you can’t downgrade once you’ve gone up an edition. Additionally, you can’t move from full Server to Server Core (or vice versa).
The supported upgrade paths are:
- Windows Server 2008 R2 Standard -> Windows Server 2008 R2 Enterprise -> Windows Server 2008 R2 Datacenter
- Windows Server 2008 R2 Standard Server Core -> Windows Server 2008 R2 Enterprise Server Core -> Windows Server 2008 R2 Datacenter Server Core
- Windows Server 2008 R2 Foundation -> Windows Server 2008 R2 Standard
The tool essential for this process, DISM.exe, is included in every installation of Windows Server 2008 R2, and the general usage for online and offline use is documented on TechNet here: http://technet.microsoft.com/en-us/library/dd744380(WS.10).aspx
One scenario that we sometimes use internally is the online upgrading of Hyper-V hosts. If you decide that you want to move from Enterprise’s 4 VM limit to Datacenter’s support for an unlimited number of VMs, you can migrate the VMs to another host, upgrade the old host in less than thirty minutes, and then immediately migrate the VMs back once the process is complete. There’s no need to take the whole server offline or rebuild from scratch.
The syntax for DISM is fairly straightforward. From an elevated command prompt, you can query for the current edition, for possible target editions, and initiate the upgrade. To upgrade, you need to provide a valid 25-character product key for the edition to which you’re upgrading.
To determine the installed edition, run:
DISM /online /Get-CurrentEdition
To check the possible target editions, run:
DISM /online /Get-TargetEditions
Finally, to initiate an upgrade, run:
DISM /online /Set-Edition:<edition ID> /ProductKey:XXXXX-XXXXX-XXXXX-XXXXX-XXXXX
So, for example, to upgrade to Windows Server 2008 R2 Datacenter from a downlevel edition, you would run:
DISM /online /Set-Edition:ServerDatacenter /productkey:ABCDE-ABCDE-ABCDE-ABCDE-ABCDE
dism /online /Set-Edition:ServerEnterprise /ProductKey:12345-12345-12345-12345-12345
After running the /Set-Edition command, DISM will prepare the operating system for the edition servicing operation, then reboot twice while it applies the changes to the operating system. After the final reboot, you’ll be running the new edition!
UPDATE: One important note, as I’m reminded by Xaegr in the comments, is that the server can’t be a DC at the time of upgrade. If you demote a DC using dcpromo, you can upgrade, then re-promote it (you may need to migrate FSMO roles, etc, in order to succesfully demote.)