Server Core debuted in Windows Server 2008 as a result of work undertaken by Microsoft in an attempt to deconstruct the Windows code base and understand the dependencies between different components so that they could be installed individually.
This led to a core product (MinWin) that could be used as a base operating system, with Windows features and roles added as required. This work continued through the Windows 7 and Windows 8 development cycles to further reduce dependencies and produce a version of Windows Server with no GUI and minimal disk footprint and attack surface. Another major gain was that OS patching was reduced anywhere between 50 percent and 70 percent.
The original Server Core was a welcome addition to Windows Server, but it wasn’t widely adopted. The lack of GUI made it difficult for administrators to work with Server Core if they didn’t possess the necessary command-line skills. Additionally, once Server Core was installed, there was no way to migrate to a full version of the OS. And, given the limited application compatibility and local management capabilities, many administrators decided to use the full edition of Windows Server instead of Core.
Changes in the latest version of Windows Server make it easier for organizations to adopt Server Core, adding support for more server roles and providing the ability to move seamlessly between Server Core and the full server UI without needing to reinstall Windows. Microsoft is so confident in the changes that it has made Server Core the default install option for Windows Server 2012. Server Core 2012 includes the following server roles:
One more important development is that Microsoft SQL Server 2012 is compatible with Windows Server Core 2012, allowing database administrators to leverage the improved security and reduced footprint of Server Core for the first time.
There are several steps involved in converting from Server Core to a full GUI (without the Desktop Experience components) using PowerShell. Start by creating a folder — mountdir, or a name of your choice — to which you can mount a Windows Imaging File (WIM) from your installation media.
Next, you need to determine the index number for a version of Windows Server on your installation media that has a full GUI and isn’t just Server Core. Start PowerShell by typing powershell in the command window in Server Core and then press ENTER. Now, run the following PowerShell command, replacing with the drive letter where your Windows media DVD or ISO file is loaded: Get-WindowsImage -ImagePath :\sources\install.wim
Figure 1 – Index numbers for different versions of Windows Server on the installation media
Once you’ve determined the index number of a suitable image to work with, mount the image to the folder created earlier (mountdir), replacing with the number determined in the previous step. The mounting process may take a few minutes.
Mount-WindowsImage -ImagePath :\sources\install.wim -Path C:\mountdir –Index -readonly
Finally, use the following PowerShell command to install the full server GUI:
Install-WindowsFeature Server-Gui-Mgmt-Infra,Server-Gui-Shell –Restart –Source
A Collecting data dialog will appear in the command window; all you have to do is wait for the server to automatically restart and boot into the full GUI.
Returning to Server Core is one easy command:
Uninstall-WindowsFeature Server-Gui-Mgmt-Infra –restart
You can also add the –remove option to the above command to delete the binaries on disk that are required for a full server installation. If you then choose to go back to a GUI installation from Server Core, you’ll need to again specify the –source path for a .WIM file or leave Windows Update to provide the necessary binaries.
In addition to Server Core and a full server GUI, Windows Server 2012 offers a minimal server interface, which is Server Core plus access to the Server Manager GUI management tool, the Microsoft Management Console (MMC) and some Control Panel applets. System administrators often install a third-party server management tool, such as Core Configurator, to manage Server Core pre-Windows Server 2012. The minimal server interface resolves that problem without having to resort to third-party software.
Switch to the minimal server interface in Server Core by running the following PowerShell command, using source files from the WIM file mounted in the steps outlined above. You can opt to omit the –source path; in this case, Windows will download any necessary files from Windows Update, but the process will take much longer than if a local source is specified.
Install-WindowsFeature Server-Gui-Mgmt-Infra –Restart –Source c:\mountdir\windows\winsxs
The ability to work with some Control Panel applets and Server Manager is a huge plus for administrators who’d like to use Server Core but don’t have the skills to work with the command line. Once the server is configured as required, you can remove the GUI tools and revert to a bare-bones Server Core configuration and make any further changes from a remote machine, using the standard administration tools.
Figure 2 – Server Manager running in Windows Server Core 2012
If the minimal server interface components are installed, you can configure network settings locally in Server Core from Server Manager. Select Local Server in the left pane of Server Manager, and click IPv4 address assigned by DHCP, IPv6 enabled to the right of Ethernet in the Properties pane. A separate command window will open, with the option to configure network adapters, amongst other configuration settings.
Figure 3 – Now it’s much easier to change network settings in Windows Server Core 2012
As with previous versions of Windows Server, you can also add the Desktop Experience to enable Windows Themes and the new Metro interface, which might be useful for providing a rich user experience to users who access applications or a desktop using Remote Desktop Services. To move from Server Core to full Windows Server 2012 plus the Desktop Experience, type the following PowerShell command:
Install-WindowsFeature Server-Gui-Mgmt-Infra,Server-Gui-Shell,Desktop-Experience –Restart –Source c:\mountdir\windows\winsxs