If you’re anything like me, you’ve spent the last two days trying to fix this:
Failure configuring Windows features. Reverting changes. Do not turn off your computer.
This post is about a very specific case of this error, which probably won’t apply to most people:
Attempting to change from Windows Server 2012 Core (Standard/Datacenter), Server 2012 Minimal to Server 2012 Full GUI (Standard / Datacenter); after an upgrade from Server 2008 R2.
The second part of this article is about how to change from core to full and back again, so that might be worth some people reading, but it is documented elsewhere in better detail.
Symptoms
If you’re experiencing this problem, here are a few places that you can look and check:
C:\Windows\Logs\CBS\CBS.log (and previous files)
“Provider Microsoft-Windows-Dwm-Dwm is already installed with GUID {bc2eeeec-b77a-4a52-b6a4-dffb1b1370cb}.”
“CMIADAPTER: Inner Error Message from AI HRESULT = HRESULT_FROM_WIN32(15010)”
“Failed execution of queue item Installer: Events ({3bb9fd2b-351e-4b9c-b1fc-ed0758805998}) with HRESULT HRESULT_FROM_WIN32(15010). Failure will not be ignored: A rollback will be initiated after all the operations in the installer queue are completed; installer is reliable (2)[gle=0x80004005]”
None of these are very helpful, even when Googled. You have to Google (sorry, bing, Bing!) a very specific set of GUIDs to actually come up with any results:
{bc2eeeec-b77a-4a52-b6a4-dffb1b1370cb} – {57e0b31d-de8c-4181-bcd1-f70e880b49fc} or {8c9dd1ad-e6e5-4b07-b455-684a9d879900}
Apparently these are related to event publishers for the event log that were erroneously migrated across from Server 2008 R2
Solutions?
The solution then is to open an elevated command prompt (what else would you have in Server Core…?!) and run the following:
reg delete HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WINEVT\Publishers\{bc2eeeec-b77a-4a52-b6a4-dffb1b1370cb}
reg delete HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WINEVT\Publishers\{57e0b31d-de8c-4181-bcd1-f70e880b49fc}
reg delete HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WINEVT\Publishers\{8c9dd1ad-e6e5-4b07-b455-684a9d879900}
If you’re a bit nervous about doing this like I was, fire up regedit on your machine and connect to the server having issues, export and then rename them 🙂
Once you’ve done this, RESTART! I didn’t the first time and it caused no end of problems – ended up restoring the VM back to a snapshot I took before attempting this.
In order to switch from core to full and back again you need to do one of three things – either update your install.wim file with all the hotfixes that you have installed on your server.. (offline patching .WIM file), uninstall all the hotfixes from the server (what I did the first time round), or allow your server to use Windows Update.
Uninstalling Hotfixes Method:
- Open Powershell
- Enter ‘systeminfo’ and press enter
- Look under the hotfix(s) section for KB numbers
- For each KB listed, enter: ‘wusa.exe /uninstall /kb:XXXXXXX’ and press enter
- Answer NO when asked to reboot.
Eventually you’ll end up with a few hotfixes that won’t uninstall:
KB2771431, KB2821895
It didn’t seem to matter that these wouldn’t uninstall.
When you’ve done this, restart your server.
Windows Update Method:
This one is somewhat easier as you get to leave all your hotfixes installed. Make sure that your server is able to download directly from Windows Update (you can go via a proxy, but check that authentication is turned OFF for Windows Update sites).
Next, open group policy editor, make a new policy for just the server having problems and set the following:
Computer Configuration\Policies\Administrative Templates\Windows Components\Windows Update
– Configure Automatic Updates: 3 – Auto download and nofiy for install
– Specify intranet Microsoft update service location: Disabled
– Enable client-side targeting: Disabled
– Allow signed updates from an intranet Microsoft update service location: Disabled
Run gpupdate /force on your server and you’ll be good to go. If you use this method, don’t forget to move your server out of the group in AD when done(!)
The Windows Component Store
If you’re NOT using Windows Updates, you need to perform these extra steps:
- Open an elevated command prompt
- cd\
- mkdir c:\mountdir
- dism /get-wiminfo /wimfile:D:\sources\install.wim (obviously your drive letter for Windows 2012 install disk)
- Pick which edition you have (Standard: 2, Datacenter: 4 on the disk I had)
- dism /mount-wim /wimfile:D:\sources\install.wim /index:#from-last-step /mountdir:c:\mountdir /readonly
- Let it do its stuff
In the commands below involving DISM, remember to add “–source:c:\mountdir\windows\winsxs” to the end of each.
Tell DISM to cleanup and fix the Windows Component Store files:
Dism /Online /Cleanup-Image /RestoreHealth
This takes ages. Depending on how badly corrupt the store is and what it has to download from Windows Update.
When it’s finished, restart your server.
Switching between Server 2012 Core and Full GUI
Finally we can switch to full GUI. There’s actually loads of ways of doing this now:
Powershell (yay!):
Install-WindowsFeature Server-Gui-Mgmt-Infra,Server-Gui-Shell -Restart -Source c:\mountdir\windows\winsxs (only if not using Windows Update)
DISM:
Dism /online /enable-feature /featurename:Server-Gui-Mgmt /featurename:Server-Gui-Shell /source:c:\mountdir\windows\winsxs
Using Server Manager via RSAT on Windows 8
You can also do the same via an offline VHD file should you desire.
Once your have picked your poison and let it run its course…
Configuring Windows features… do not turn off your computer server virtual machine 😉
You should be all happily converted:
If not, analyse C:\windows\logs\cbs to death, because the answer is in there!
Microsoft KB article on the subject: http://support.microsoft.com/kb/2775484
9 Comments