It’s been awhile, so I figured I’d write a more technically-focused post. I’m putting together my TechEd session for Orlando (DBI313: Deploying SQL Server 2012 Using Windows Server Core) which is on Monday, June 11th at 1:15 PM. I’m hoping to show some Windows Server 2012 stuff, and in testing, I did find something interesting which may trip some of you up.

As I hope you already know, with Windows Server 2008 R2, you can configure Windows in one of two ways: with the full-blown user interface or in a Server Core configuration which just gives you a command prompt when logged in. Unlike Windows Server 2008 R2, Windows Server 2012 allows you to switch between Core and full GUI, and even adds what I call a “halfway house” known as MinShell. MinShell allows some GUIs to run – namely MMC snap-ins.

There is one caveat that isn’t well documented. While you can switch between Core and Full, how you started will determine the initial step. If you installed the full GUI, switched to Core, and then want to change back – no problem. If you first install Server Core and then decide to go with a GUI, the payload that has the interface is not installed by default (much like .NET 3.51, as I blogged about here). First, you’ll see the error as shown in Figure 1.

Figure 1. Error when trying to switch to the full UI

Shown in Figure 2, when you examine things with dism, you’ll see the payload isn’t there.

Figure 2. UI payload not enabled

Like .NET 3.51, you’ll have to install the payload as part of the enabling of the UI as shown in Figure 3.

Figure 3. Adding the package

You’re not done just yet. You also have to enable the feature Server-Gui-Shell (either with dism or using PowerShell [Add-WindowsFeature featurename]). An example is shown in Figure 4.

Figure 4. Adding the GUI shell feature

Once you reboot, you will see the full Windows Server 2012 GUI. You may see some instructions that also tell you to enable Server-Gui-MgmtInfra, but as you can see in Figure 5 which was done in testing this blog post, it’s enabled when you add Server-Gui-Shell.

Figure 5. Management tools enabled

Hope this helps some of you out there!