Microsoft introduced Server Core with Windows Server 2008, which means that it was the same kernel as Windows Vista. Now, nobody is going to stand up and sing the praises of Vista, but Server 2008 was a very solid OS.
You may (or may not) remember that there was a campaign around Vista called ‘The WOW starts NOW!’ Catchy, huh? Well, because Server Core was literally taking the ‘bling’ out of Windows Server, there was an internal joke at the time that ‘The Wow STOPS Now.’
While Server Core never looked very exciting for end users, for IT Admins, and especially those who were building virtualized environments, Server Core was a godsend. Let’s go through this one more time to demonstrate why:
- The Windows Graphical User Interface (GUI), which is the difference between Server Core and not, takes resources. How much? Well, depending on the server it might be as much as 3-4GB on the hard drive and as much as 350MB of RAM. Neither of these is a big deal in a world where servers have 128GB of RAM and terabytes of storage on them, right? Well on a virtualization host that may have on average 100 virtual machines running simultaneously, that translates to 400GB of storage and a ridiculous 35GB of RAM… Ouch.
- Every component that is installed in Windows has to be patched from time to time. The fewer components you have installed, the less patching that has to be done.
- The more you have installed in Windows the larger your attack surface. By removing components, you can minimize this, making your computer more secure.
In Windows Server 2008 here’s what we saw when we initiated the installation… a menu with all three editions (Standard, Enterprise, Datacenter) Full Installation, and the three editions with Server Core Installation.
I have been singing the praises of Server Core for as long as it has been available, but often to deaf ears. I always assumed this was because most IT Admins liked the GUI. Recently I was in a presentation given by Jeffrey Snover, who gave me another perspective on it… the terminology in Server 2008 was part of it. You see, people look at the options ‘Full Server’ versus ‘Server Core’ and they immediately think ‘power & performance.’ A Full Server must do more than a server core server… why? It is FULL!
Of course, in Server 2008 it didn’t help that Server Core actually was a hobbled version of Server… there were a few roles that worked on it, but not too many.
As with so many Microsoft products, that got better in 2008 R2, and even better in Server 2012 and 2012 R2. Today you would be amazed at what can run on Server Core… in fact, nearly everything that you do on a server can run on Server Core. So there is little wonder that Microsoft made a change to the terms…
No longer is it a question of FULL versus CORE… Now our options are Server Core Installation and Server with a GUI.
There are two differences to notice in this screen shot… the first is that there are only four options because Microsoft eliminated the Enterprise SKU. The second is that the default option (a la next – next – next installations) is Server Core. While some admins might say ‘Yeah I wasn’t paying attention so I ended up with Server Core and had to reinstall,’ the reality is that most of us, once we understand the benefits and the manageability options, will want to install Server Core instead of the GUI servers.
Of course, there are admins who will still be afraid of the command line… but because most of the ongoing administration of our servers (the things we usually do with MMC consoles) Server Core, or at the very least MinShell will make our lives easier. MinShell removes most of the GUI, but leaves the MMC consoles.
But what if I wanted to use the GUI to configure the system, and then get rid of it completely? We can definitely do that. One method of doing it is to use the Server Manager’s Remove Roles and Features option. (The GUI is a feature, and is listed under User Interfaces and Infrastructure – Server Graphical Shell) This will uninstall the components and save the RAM… but it will not free up your hard disk space. To do that, use the following PowerShell cmdlet:
Uninstall-WindowsFeature –Name Server-Gui-Mgmt-Infra,Server-Gui-Shell –ComputerName <Name> -Remove -Restart
The -ComputerName option allows you to do this to remote computers, and the -Remove option actually removes the bits from the hard drive.
What can you do with Server Core? I won’t say everything… but nearly so. It is no longer just your Hyper-V hosts… it is your domain controllers, SQL Servers, Web Servers, and so much more. As long as you are able to learn a little bit of PowerShell… and how to enable remote management on your servers.
Now go forward and save your resources!