Windows Server Core is a minimal installation option for the Windows Server operating system (OS) that has no GUI and only includes the components required to perform server roles and run applications.
The smaller code base in Server Core reduces the amount of resources required to run the OS, takes up less disk space and lowers Server Core's exposure to outside threats. Microsoft removed the GUI, which frees more RAM and compute resources on the server, to run more -- or more demanding -- workloads, which can benefit highly virtualized environments.
The full Windows Server 2016 RTM installation takes about 10 GB of disk space, while the Server Core installation takes up about 6 GB of disk space. With fewer processes and services running the OS, there is less chance that an attacker can use an unpatched exploit to enter the organization's network. Server Core eases management overhead with fewer configuration options to limit the issues that occur when an administrator applies an incorrect setting.
Server Core management can challenge less technically adept IT pros. The lack of a GUI requires the administrator to have a high level of proficiency with PowerShell. An organization needs to perform a thorough test of workloads on Server Core to ensure there are no issues with remote management before a move to the production environment.
Server Core is available in both the Windows Server Semi-Annual Channel and Long-Term Servicing Channel releases. Microsoft supports Windows Server products in the Long-Term Servicing Channel with five years of mainstream support, five years of extended support and an option for six additional years through Microsoft's Premium Assurance program. Microsoft supports Windows Server products in the Semi-Annual Channel for 18 months from each release.
Windows Server Core management
Microsoft developed a number of PowerShell cmdlets for various administrative tasks required to deploy and manage Server Core. A more advanced shop can build PowerShell scripts to automate complex workflows for frequently performed procedures. An administrator can use a remote PowerShell session to connect to the Server Core installation to execute the cmdlets.
RSAT consists of a number of tools -- Microsoft Management Console snap-ins, PowerShell cmdlet modules and command-line utilities -- to manage the roles and features for Server Core. RSAT runs on a Windows client machine.
An admin can also use the Microsoft Server Configuration Tool -- known as sconfig.cmd -- to handle the initial configuration of a Server Core installation. The utility restarts and shuts down the server, adjusts Windows Update settings, enables the Remote Desktop Protocol and renames the host.
Uses for Windows Server Core
Server Core deployments are ideal for enterprises that need to deploy and maintain a large number of servers. Microsoft recommends Server Core for servers that require minimal administration once deployed for specific infrastructure roles, such as domain controllers and certificate authorities.
Microsoft recommends Server Core in Windows Server 2016 for the following roles: Active Directory (AD) Certificate Services, AD Domain Services, AD Lightweight Directory Services, AD Rights Management Services, Dynamic Host Configuration Protocol server, Domain Name System server, File Services, Hyper-V, licensing server, print and document services, Remote Desktop Connection Broker, Routing and Remote Access service, streaming media services, web server, Windows Server Update Services and Volume Activation Services.
History of Windows Server Core
Microsoft introduced Server Core with the release of Windows Server 2008. This installation option removed features and services not required to run the most common server roles. This version had limitations that held back adoption by administrators. There was no option to switch between Server Core and the full GUI version; if further modifications required the GUI, the admin needed to reinstall the OS. This release did not support certain administrative features, such as PowerShell remoting.
In Windows Server 2012, Microsoft made Server Core the default option for installation. The admin could use PowerShell to switch back and forth between the GUI if it was needed to install a driver or to perform another task that required the graphical interface. Once the administrator finished that job, the GUI component could be removed. Microsoft added an integrated scripting environment to the Server Core interface.
In Windows Server 2016, Microsoft removed the ability to convert Server Core to a full Windows Server with the GUI -- also known as Server with Desktop Experience. Users need to perform a new installation to get the GUI with Windows Server.
Disadvantages of Windows Server Core
The lack of a GUI in Server Core is one drawback for some IT departments if administrators are not comfortable using PowerShell and remote management. A problem with a system that runs Server Core could tie up an inexperienced technician who must research how to use cmdlets or an unfamiliar utility when the issue could be resolved quicker if there was access to the GUI.
Server Core supports a large number of server roles, but there are quite a few that are not compatible with this OS. Also, many third-party applications require a GUI and do not support Server Core.
Windows Server 2016 removed the ability to switch a Server Core installation to the full GUI version -- also known as Server with Desktop Experience -- which took away the flexibility preferred by some administrators.
Windows Server Core vs. Nano Server
Microsoft released the initial version of Nano Server in Windows Server 2016 RTM as a separate installation option, and originally promoted it as an even smaller server deployment than Server Core at around 400 MB on disk.
In June 2017, Microsoft decided to rework Nano Server from a minimal server deployment option for infrastructure roles to a container-only image in the Windows Server 2016 release version 1709. This move stripped Nano Server's servicing stack and numerous other components required to run various server roles, such as DNS and file server. The company recommends organizations use Server Core as a host for virtual machines (VMs), containers and traditional infrastructure workloads.