Windows Server 2019 – Why use Server Core?

Docker Compose Tutorial for Beginners

Why am I even talking about Server Core? Hasn’t it been around since 2008? Yes, that is exactly why I am talking about it. The Server Core variant of the Windows Server operating system has been around for quite some time, but it seems like many admins are scared to trust it. I work with many different companies from many different industries. They all have one big thing in common: they use a lot of Windows Servers, and all of these Windows Servers are running the full GUI (Desktop Experience). Have they heard of Server Core? Sure. Have they tested it out in a lab? Sometimes. Everyone seems to have a slightly different experience level with Core, but it’s quite rare to find one in production. Maybe I’m just talking to the wrong people, but I have to assume that there is a majority of us out there, myself included, that need to start using Server Core on a more regular basis.

Why do we need to start using Server Core? Because GUI-less servers are the future, says Microsoft. Would you believe that early in the previews for Windows Server 2016, the Desktop Experience option didn’t even exist? You couldn’t run a full GUI desktop shell on a Server 2016 if you wanted to, save for a quasi-, mini shell that could be plopped on top of Server Core. Microsoft received so much flak about this that the full Desktop Experience was added back during one of the Technical Preview rollouts. Even so, since that time, you have probably noticed that Server Core is the default option when installing any Windows Server operating system. Remember, back at the beginning of our book, where we did a quick review of the actual Server 2019 installation? The default option for installation is not Desktop Experience; rather, that top option in the following screenshot is the option for installing the command-line-driven Server Core:

One of the reasons for a move away from the graphical interface is increased capabilities for automation and scalability. When all of our servers are built similarly, it means that we can do more cloud-like functions with them. Automatic spinning up and down of resources as they are needed, rolling out dozens of servers at the click of a switch—this kind of automation and sizing is possible in the cloud, but is only possible because the infrastructure is set up in a way that it is so standardized. Cloud hardware resources need to be so streamlined that the operations and automation tools can make them do what is needed, without worrying about all of the variables that would be present in a user-tweaked graphical interface.

There are other obvious advantages to running all of your servers as this limited, restricted version. Server Core boasts reduced hard drive space, reduced memory consumption, and a reduced attack surface when compared to a traditional, full-blown server experience. Now you can see why I made the hefty statements a minute ago about how we all need to start becoming more comfortable with Server Core! In fact, let’s take a look at that reduced footprint. A base Server 2019 Standard running Desktop Experience consumes around 10 GB of hard drive space; I just verified this by taking a look at the properties of my virtual hard disk file being used by my CA1 server. CA1 is a standard Windows Server 2019 running the full Desktop Experience. Now, I have just finished running through the installation for my first Server Core operating system, and we can see in the following screenshot that the VHDX file being used by this new virtual machine is only 5.8 GB, a 40% reduction in space:

No more switching back and forth

There is a very important note that I wanted to make here: those of you who have worked with Server Core in Windows Server 2012 R2 know that we had the option of changing a server on the fly. What I mean is that if you created a new server as the full Desktop Experience, you could later change it to be Server Core. The opposite approach was equally possible; you could take a Server Core and flip it over to a full Desktop Experience.

Not anymore! This capability to move servers back and forth between platforms has been removed. I repeat, this is no longer possible. So plan carefully from here on out when installing these operating systems. If you implement a server as Server Core, that guy is going to remain a Server Core for its lifetime.

Comments are closed.