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
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.)
Definitely let me know if you have questions about particular details – we’re excited that this functionality is now available.
Hello Brendan! I finally got the opportunity to test this great feature, but it isnt working for some reason.
I have Windows Server 2008 R2 Standart x64, Full installation, RTM. There are domain controller, certificate authority, and hyper-v roles (I know, this isnt recommended, but this is my home lab) and some other minor roles. Here is output from DCIM (running with elevated privilegies):
PS D:\> dism /online /get-currentedition
Deployment Image Servicing and Management tool
Image Version: 6.1.7600.16385
Current edition is:
Current Edition : ServerStandard
The operation completed successfully.
PS D:\> dism /online /get-targeteditions
Editions that can be upgraded to:
Target Edition : ServerDataCenter
Target Edition : ServerEnterprise
Looks fine, but when I try to actually upgrade (using the real key of course) I got error:
PS D:\> dism /online /Set-Edition:ServerEnterprise /ProductKey:12345-12345-12345-12345-12345
Setting an Edition is not supported with online images.
The DISM log file can be found at C:\Windows\Logs\DISM\dism.log
I also tried DataCenter with no luck. Here is lines from log that looks related to problem:
2009-11-20 19:18:13, Info DISM DISM Provider Store: PID=2960 Getting Provider Edition Manager - CDISMProviderStore::GetProvider
2009-11-20 19:18:13, Info DISM DISM Provider Store: PID=2960 Provider has previously been initialized. Returning the existing instance. - CDISMProviderStore::Internal_GetProvider
2009-11-20 19:18:13, Info DISM DISM Transmog Provider: PID=2960 Current image session is [ONLINE] - CTransmogManager::GetMode
2009-11-20 19:18:13, Info DISM DISM Transmog Provider: PID=2960 GetProductType: ProductType = [LanmanNT] - CTransmogManager::GetProductType
2009-11-20 19:18:13, Error DISM DISM Transmog Provider: PID=2960 Setting an Edition is not supported online. - CTransmogManager::ExecuteCmdLine
2009-11-20 19:18:13, Error DISM DISM Transmog Provider: PID=2960 [Upgrading system]: Setting an Edition is not supported with online images.
If you drop me a message to xaegr ат yandex dоt ru i can send you a full log file or other additional information.
Unfortunately, I forgot to post one important caveat to the process - the machine can't be a DC.
If you demote it first, the upgrade should succeed. Once it finishes, you can promote the machine again.
I'll edit the original post to add that information, but definitely let me know if that succeeds? Sorry for the inconvenience.
Can you upgrade a Hyper-V Server 2008R2 to a "normal" Windows Server Standard Core Server ?
No, unfortunately - Hyper-V Server is a separate product line, so doesn't fit into the edition families I listed above. Sorry!
Can you determine if the server is a retail or volume license? If so, can you change it as well?
The easiest way to determine what channel (Retail, OEM, or one of the Volume License options) you're currently using is to run, from an elevated command prompt, the "slmgr.vbs" script that's embedded in the product.
"slmgr.vbs /dlv" will give you the detailed license view, and in the description section, you'll see what channel you've got deployed. slmgr.vbs works remotely as well, so you can point it at any server that you have admin credentials for.
If you want to swap a product key, you can use slmgr.vbs to handle that as well: the /upk switch uninstalls a key, while /ipk installs one.
Let me know if you have any trouble?
Doesn't work for me. I have tried 20 plus supposedly valid keys from our VLK site for W2K8 R2 STD/ENT to try and upgrade a R2 Std server to Ent. I tried all my MAK and KMS keys. I ran the .vbs script which told me I had a KMS install. Do I now have to ring MS Customer Support?
MartinS, i had the same issue, but i was able to get by it by using the Generic 2008R2 keys for KMS Enterprise
What do you meen by generic key?
Is it the product ID (numbers generated after KMS activation)?
I tried to use these from my Standard 2008R2 activation when trying to upgrade from DISM, but no luck.
I do not have any W2KR2 Enterprise as of now, this is the first.
The generic KMS client key for Windows 2008 R2 Enterprise is 489J6-VHDMP-X63PK-3K798-CPX3Y
If you do the upgrade with that key, it will work. Just google KMS Client Keys and follow the bouncing ball.
MAK keys map to multiple editions, so the underlying infrastructure doesn't accept them. If you use the generic KMS client key, as Matthew suggests, that will allow you to proceed with the upgrade, and then you can either replace the key with a valid MAK post-upgrade or just use the KMS client key to activate against your internal KMS server.
The full list of KMS client keys can be found here on technet: technet.microsoft.com/.../ff793406.aspx
It's important to note that you need to use a KMS client key, rather than a KMS host key. The latter is what's used to configure and activate the KMS (and is specific to that one KMS install), while the former is generic to every client of a KMS.
GDism ELDI last version in:
Good staff. Very helpful.
The machine can't be a DC. What can you say about Exchange 2010 SP1 on Windows 2008 R2 Standard that need to be upgraded to Enterprise?
I followed these instructions and am now unable to install Server 2008 R2 SP1! I've posted to the TN forums.. happened on multiple VM's
(check this update support.microsoft.com/.../976902)
Today I tested the upgrade server edition from the standard to the Enterprise on the physical server IBM 3550.
Since the beginning has been installed server 2008 R2 standard without any updates, then installed Exchange 2010 SP1. After that I made the check for updates and got 67 updates, but among them the first service pack was not in the list! Installing all 67 updates is successful, then reboot, then another check for updates and here he was the first service pack.
Without installing the service pack I run:
DISM /online /Set-Edition:ServerEnterprise /ProductKey:489J6-VHDMP-X63PK-3K798-CPX3Y
Check version, all at first glance good. I got Enterprise edition.
Now run the install service pack .... Reboot, one more ... everything goes according to plan ...
And here he is the moment of truth, when you log on watch box - service pack was successfully installed. Check the verson: 2008 R2 Enterprise SP1.
Some remarks on the upgrade:
1. I used the KMS client key. technet.microsoft.com/.../ff793421.aspx
2. tested only a single physical server.
3. I want to draw attention to the following update: support.microsoft.com/.../976902
4. Exchange working properly after all the above done.
5. All updates from Windows Updates
6. About DISM technet.microsoft.com/.../dd744380(WS.10).aspx
This is was test enviroment, 2 weeks later i want to do this on production server (have 32gb ram useble of 64 installed)