Beginning with Windows Server 2008 Microsoft offered the option to install the operating system without large parts of the graphical user interface (GUI). This means when you logon to the server all you get is a command line prompt. There is no Windows Explorer, no start menu and no Internet Explorer among others. You want to set the IP address? Use the command line. Want to reboot? Use the command line. Want to . . . ? Well you get the idea.
System Resources: Server core uses less disk space and less memory. In short there is less running and less installed. The full installation of Windows Server 2008 R2 is approximately 7.5gb, while in Core it is approximately 3gb. The disk space savings is not a serious advantage in my mind unless we are looking at a virtual server environment where you would have dozens or hundreds of these machines using a shared resource (the physical machines storage). A default installation of Windows Server 2008 R2 (no 3rd party apps, no roles installed, etc) consumes 385mb of memory after a reboot. The same setup but a Core install uses 255mb. That is a 34% decrease in memory usage. Multiply that by 100 virtual machines in a VMware or Hyper-V farm and that is a serious resource savings.
Security: Since there is simply less stuff installed there is less to patch and less to attack. The removal of Internet Explorer alone can reduce the number of patches you install significantly. A component not installed by Core can not be exploited which will provide significant security enhancements.
Raises Required Skill Level of IT Pro: Managing a Server Core system can be significantly harder if you are not comfortable in a command line environment. Some readers might think this should be in the Dis-advantages section. However I see it as an opportunity in two ways. First it sets a minimum skill level for any IT Pro working on the system. I find Server Core is a great way to keep less experienced administrators away from your critical machines. Secondly it forces you to work smarter. Windows administrators are plagued with never learning how to do something from the command line (and therefore being able to script it, automate, etc) because the GUI tool will get the job done faster than you can learn what the command syntax is. Once you put yourself in an environment where you do not have a choice you quickly start to grow as a Windows Administrator. Starting with Windows Server 2008 R2 the .Net framework is available on core and this means that powershell is available. The best way for a Windows administrator to jump start their career and make significant gains in their productivity is to learn how to use powershell to manage your servers.
Limited Roles Available:The roles available on core are limited. In Windows Server 2008 R2 Core the roles available are:
- Active Directory Certificate Services
- Active Directory Domain Services
- Active Directory Lightweight Directory Services (aka ADAM)
- BranchCache Hosted Cache
- DHCP Server
- DNS Server
- File Services
- Media Services
- Print Services
- Web Server (IIS)
- Note: In Windows Server 2008 the .Net Framework is not available so that means no ASP.net sites. In R2 the framework is available.
If you are looking to run a role that is not on the list above you will not be able to use core. Some common examples are Terminal Services, WSUS, Windows Deployment Services and any other not on the list above.
.Net Framework: As noted in the above section the .Net Framework is not available on Core until R2. The most notable places this is an issue is if you want to run ASP.net sites or if you want to use PowerShell. Both of these are pretty painful because core makes a great OS for a web server farm and PowerShell makes a great command line interface to manage an OS from. However unless you have licensing issues preventing you from upgrading there is no reason not to move to R2. Think of R2 as a really good service pack. It is an incremental upgrade so it’s already heavily tested, it has a good track record already, and it provides a lot of polish that Windows Server 2008 was missing (such as the .Net Framework on Core). As long as I am encouraging you to upgrade to R2 take note that it is only available in x64 so that means if you have REALLY old hardware you will not be able to run R2. Also watch out for some 3rd party apps which have not updated their products to officially support R2. For example VMware (ESX, workstation, etc) has to be upgraded to a certain version to officially support R2 (although I have seen it work on versions that supports Windows Server 2008).
3rd Party Applications: Some third party applications simply do not work without a GUI. Make sure that your anti-virus, backup agents, monitoring agents, inventory agents, etc will install and allow you to do any management you need to do within core. One piece of software that is notorious for keeping people off of core is network card management software. If you want to (for example) team a pair of network cards using the Intel or Broadcom software last I heard those do not work on core.
Windows Server Core in the right situations is a great operating system. Keep an eye on this blog over the next few weeks as I will be publishing some details on how to manage the core operating system.