Changing Server Installation Option from Server Core to Server-Gui-Shell

This is a follow-up post of my earlier article of Features on Demand, http://aka.ms/FoD where I also illustrated changing server installation options and developing minimal server footprint. In this post, I walked through the process of changing the server installation option from server core to server-gui-shell.

In this scenario, I installed a server core, as shown below, to a VM from the Windows Server 2012 R2 iso file, en_windows_server_2012_r2_with_update_x64_dvd_4065220.iso, downloaded from MSDN. And later changed the server core installation to one with server-gui-shell, i.e. with a full server GUI using DISM online commands. The OS disk is 40 GB in size.

image image

The following displayed the c drive of a clean server core install. And the feature store is at c:\windows\winsxs as shown. Here I also included the command in the screen capture.

image image

The following are some highlights of a formatted output of the server features of a clean install of server core using a DISM online command.

image

Since the GUI components had a state of “disabled with payload removed”, I needed to pointed out the source to enable the GUI feature. Below, I first shared out the feature store, i.e. c:\windows\winsxs, with read access to everyone on the machine, named VMM, which is a full gui installation as the source.

image image

Then I ran the DISM online command to enable server-gui-shell as:

dism /online /enable-feature /featurename:server-gui-shell /source:\\vmm\winsxs /all

To include all dependencies, I used /all in the statement. Notice the default behavior of enabling a feature is to ultimately go to Windows Updates, if an installation source is not specified or the needed bits are not found. Remember to include /LimitAccess in the statement to prevent seeking Windows Updates, as needed.

This statement took a few moments to run and complete the statement since it’s a gigabyte operation.  After finishing enabling server-gui-shell, I did a dir on the feature store just to show the difference made by enabling the feature. Notice there were 4,006 directories added to the feature store by this enabling server-gui-shell operation.

image image

After reboot, I noticed I was not able to find Server Manager in the Apps page. Opening a command prompt, I typed and ran the statement, powershell “get-windowsfeature”, and interestingly none of the GUI components was enabled. This may be an anomaly. So I ran the statement, powershell “install-windowsfeature server-gui-shell” to install the gui shell again. I thought I would need to reboot, the operation ran successfully and did not require a reboot. I then saw Server Manager, PowerShell ISE, etc. Server Manager came up fine and all seemed back to normal apparently.

image

Finally, you may notice that the above operations do not work on a Hyper-V Server which is a free and dedicated stand-alone product with the hypervisor, Windows Server driver model, virtualization capabilities, and supporting components such as failover clustering. A Hyper-V Server however does not contain the set of features and roles as a Windows Server operating system which requires a purchased license.

Call to Action

  • Register at Microsoft Virtual Academy, http://aka.ms/MVA1, and work on the server track to better understand the roles and features of Windows Server 2012 R2.
  • Download Windows Server 2012 R2 trial from http://aka.ms/R2 and evaluate the product.
  • Follow the Features on Demand series, http://aka.ms/FoD, and assess a minimal server footprint based on your business requirements.