How to change between a Full Installation (GUI) and Server Core in Windows Server 2012

posted in: Blog, Powershell | 15

Windows Server 2012

Server Core was introduced in Windows Server 2008, but was confusing to a lot of administrators. This was mainly due to the fact that you as an administrator was restricted to a command line and needed to know the commands for doing your tasks. One of the main problems with it, was that if you installed your server as a Server Core, you would need to reinstall it if you wanted the GUI.

This has changed in Windows Server 2012. Now it’s possible to install your server with a GUI and remove the GUI once you’ve set everything up. It’s also possible to install your server as a Server Core and then add the GUI if needed, by just entering a simple Powershell command..

Adding the GUI to a Server Core installation

Enter this command in to a Powershell prompt, running as Administrator. To enter Powershell, simply type Powershell from the Command Prompt 🙂

Then run:

Add GUI Server Core Windows Server 2012 Powershell

Once installed, you need to restart the server. Use this command:

If you do not have Internet connectivity, the installation will hang at 68% and after a while display an error message to you:
Install-WindowsFeature : The request to add or remove features on the specified server failed.
This means that the source files for the GUI installation cannot be located.

.Installation 68% Powershell Windows Server 2012 GUI Core

Installation failed source Windows Server 2012 Powershell

To solve this, follow these steps:

Start by creating a mount directory (i.e C:\Mount)

Get the index number of the WIM file for the GUI (if WS2012 media is on D:). Since all of the Windows Server 2012 installations are stored in the same *.wim, we need to specify what version we want to mount. In this case, we’ll be using the Datacenter version with GUI, which is Index #4

dism Windows Server 2012 GUI Powershell Index Datacenter

Mount the WIM file:

Dism Windows Server 2012 Mount Datacenter GUI Powershell

Install and specify the source:

Install GUI Server Core Windows Server 2012 Powershell Datacenter
Once installed, you need to restart the server. Use this command:

Add GUI Windows Server 2012 Server Core Powershell Windows Feature

Removing the GUI from a full installation, using the GUI:

Open Server Manager, open the Manage menu and go to Remove Roles and Features

Remove GUI Windows Server 2012 Core

Press Next until you reach the Features page

There are two different features that you can choose:

  • Graphical Management Tools and Infrastructure (server-GUI-mgmt-infra) basically provides Powershell, MMC and Server Manager.
  • Adding the Server Graphical Shell (server-GUI-shell), will add the rest of the GUI experience. This feature is dependent on the first, so you can’t just add this one.

Note that if you remove Graphical Management Tools and Infrastructure, you will also remove Server Graphical Shell.

Remove GUI Windows Server 2012 Core

Once deselecting one of the features, you will get a popup. Here, press Remove Features.

Remove GUI Windows Server 2012 Server Core

The User Interfaces and Infrastructure feature should now be deselected. Proceed by pressing Next.
Remove GUI Windows Server 2012 Server Core

The final step is to confirm the removal process. Press Remove and select Restart the destination server automatically if required.

Remove GUI Windows Server 2012 Server Core

Removing the GUI from a full installation, using Powershell:

Enter this command:

Remove GUI Powershell Windows Server 2012

Remove GUI Server Core Windows Server 2012 Powershell Remove GUI Server Core Windows Server 2012 Powershell

15 Responses

  1. Sathwik

    Install-WindowsFeature Server-Gui-Shell, Server-Gui-Mgmt-Infra
    restart needed:no
    what to do??
    had internet connection

  2. Derrick Stout

    I think the problem is at your section Install and specify the source: One screenshot has the source as c:\mount\windows\sxs while the other has the correct source as c:\mount\windows\winsxs

  3. Jan van Zeggelaar

    Hi Daniel,

    thanks for your article. Don’t know if it will work yet, it is running as I type.

    But could you please listen to Derricks remark. If you are lazy, like me, and cut ‘n paste the command line using SXS instead of WinSxS you are in for a long 68% wait again.


    P.S. it is still at 68% 🙁 . Guess I wait until I click Post.

    P.P.S. 🙁 Still nog go. And this only because suddenly I couldn’t remotely manage my RRAS server after the last updates what a mess. I have now rebuilt a server with GUI from scratch.

    Sometimes I really want to switch to Linux completely.

  4. Vikir

    Hi, I cannot deselect User Interfaces and Infrastructure, it is not allowing me too. Using Windows Server 2012 Standard Edition.

    Please help

  5. Jaro

    When this manual doesn’t work and you are getting the error: 0x800f0906 you will need to uninstall all hotfixes – unless you know which one is causing this (run PS commands “get-hotfix” & “wusa /uninstall /norestart /kb:2887595” for each update or scrip it if you have powershell skills)

    Mounted image as suggested in this manual will be seen as outdated by windows if you patched server core installation. The it will try to contact windows update to get newer files but it will fail even though I had internet connection.

    Once I uninstalled patches the core 2 GUI as suggested above worked.

  6. MSH


    Nice article.

    you need to make change in the code you written as it has 2 issues.
    1- index 3 should be 4
    2- after /wimfile: you do not need an space.

    so the correct one is:

    dism /mount-wim /wimfile:d:\sources\install.wim /Index:4 /mountdir:C:\Mount\ /readonly

  7. Martin Silbernagl

    Instead if mounting the WIM, it is quicker to specify it directly as the source of the operation. Assuming your CD-ROM is in D: and you want Datacenter (i.e., image 4), you can use Install-WindowsFeature Server-GUI-Shell, Server-GUI-Mgmt-Infra -Source wim:D:\sources\install.wim:4

  8. Steve

    This is a powershell script that I came up with that seems to work pretty well at removing hotfixes.

    del c:\hotfix*.txt
    get-hotfix | fl hotfixid > c:\hotfixfl.txt
    (get-content c:\hotfixfl.txt) |
    Foreach-object {$_ -replace “hotfixid : “, “”} |
    Foreach-object {$_ -replace “kb”, “KB:”} |
    Set-content c:\hotfix.txt
    $hotfixes = cat c:\hotfix.txt
    foreach ($hotfix in $hotfixes)
    wusa /uninstall /norestart /quiet /$hotfix
    # Wait for wusa.exe to finish and exit (wusa.exe actually leverages
    # TrustedInstaller.exe, so you won’t see much activity within the wusa process)
    while (@(Get-Process wusa -ErrorAction SilentlyContinue).Count -ne 0)
    Start-Sleep 1
    Write-Host “Waiting for update removal $hotfix to finish …”

  9. venkatesh

    Hi all can any one give full details of windows2012 server instalattion with all softwares and maintiness…iam new for windows2012 server please give best guidens.


  10. David

    ty so much for this article

    Just one thing I think the from window server 2012 R2 and above the SxS have been renamed to WinSxS

    So the last statement would be

    Install-WindowsFeature Server-Gui-Shell, Server-Gui-Mgmt-Infra -Source C:\Mount\Windows\WinSxS

  11. Matt

    You can make it a lot easier without having to manually mount the wim file.

    Dism /online /enable-feature /featurename:ServerCore-FullServer /featurename:Server-Gui-Shell /featurename:Server-Gui-Mgmt /source:wim:D:\sources\install.wim:2

    D being the DVD-ROM drive where your Windows 2012 R2 ISO is mounted.

    Keep in mind, once you install Windows updates, you can no longer run this command successfully. You have to create a custom ISO with the exact updates you have installed on your server for this to work.

Leave a Reply