Updating Server Core and switching GUIs

windows_update_icon-120x120Windows Server 2012 offers new capabilities related to Server Core. As I’ve mentioned before, it is now possible to switch the Graphical User Interface (GUI) mode after initial installation. This new capability allows us to configure a Windows Server system to our needs, using the interface we know and love, and then afterwards make it run in Server Core mode for optimum performance and security.

Applicable updates

One of the configuration steps you might want to perform in the Full Graphical Interface (known as ‘Full installation’) is running Windows Update using the familiar Windows Update interface:


This will install all applicable updates to a Windows Server, including updates for the Metro Start Screen and Internet Explorer. However, when you don’t intend to use the server as a Terminal Server and intend to convert it to a ‘MinShell’ or ‘Server Core’ installation, you might think these updates are of no use.

You may opt not to run Windows Update when in Full Installation, and run sconfig.cmd after converting the server to a more optimum GUI mode and install the applicable Windows updates from the command line then. This approach has a downside, though. If you need to switch back to a full installation or ‘MinShell’ installation, the system would be vulnerable immediately after the required reboot.

For instance, if you need to change the binding order of network interface cards (NICs) and convert the box back, because it’s so darn easy in the graphical interface, then, you would miss updates for every component introduced, since the last Service Pack.

So, updating in the Full Installation initially isn’t such a bad idea when you’re getting started with Server Core in Windows Server 2012. I would even recommend it, if you’ve not been using Server Core in Windows Server 2008 or Windows Server 2008 R2.

Disk space penalties

Luckily, when you run Windows Update, the penalty in disk space is minimal.

As you might be aware, since switching GUIs in Windows Server 2012 does not require the installation media, the bits for all three GUI modes are already on the disk.

Under the hood, when you apply Windows updates to Windows Server 2012, you update the files in the Side by Side store in the C:WindowsWinSxS folder, which in turn is linked to the C:WindowsServicingPackages folder.

Switching GUIs and adding/removing Server Roles and Features simply enables and disables hard links to files in the Side by Side store. Updating in Windows Server 2012 involves updating the files in the Side by Side store and, therefore, updates the files in use through these hard links.

This is also the reason why switching GUI modes in Windows Server 2012 doesn’t free up the amounts of disk space we’re used to when comparing Server Core installations to Full installations in Windows Server 2008 and Windows Server 2008 R2. A vanilla Server Core Installation takes up 9 GBs of hard disk space, where a vanilla Full Installation fills up 12 GBs of hard disk space with data.

Freeing up disk space now, more than ever, involves removing the installation files for GUI modes, Server Roles and Server Features. More information on this process is available here. Since this limits the possibilities for the Windows Server installation to perform tasks and provide services in the network, this is not something to take lightly. Of course, when configuring highly customized Windows Server installations you might, if you need security and/or performance and disk space is of the essence.


One area of Server Core you don’t have to be concerned with when switching the Graphical User Interface (GUI) in Windows Server 2012 is Windows Updates.

Microsoft has created a delicate balance where new Server Core admins can enjoy updated systems by simply performing maintenance tasks in Full installation mode, while also enabling more seasoned Server Core admins to tweak the box further in terms of used disk space.

You can follow any responses to this entry through the RSS 2.0 feed.

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>