Deploying and Configuring Server Core VMs on Hyper-V (Part 1)

by [Published on 24 March 2011 / Last Updated on 24 March 2011]

In this article, I will explain why that is the case. Later in the series, I will guide you through the process of deploying and configuring Server Core on a Hyper-V server.

If you would like to read the other parts in this article series please go to


Although the thought of abandoning the Windows GUI can be more than a little intimidating, there is no denying that Server Core is ideally suited to Hyper-V environments. One of the primary concepts behind server virtualization is that server virtualization allows you to make better use of otherwise underused hardware resources by hosting multiple virtual machines on each physical server. Now that server virtualization has been proven to be a reliable technology, the question seems to have changed from “How can I make better use of my server hardware” to “What can I do to increase the number of virtual servers that each host server can support”.

One way to increase your virtual server density is to use server core deployments whenever possible. Windows 2008 servers configured as core server deployments do not use a traditional GUI. As such, they have a smaller attack surface and consume fewer hardware resources than traditional Windows Server deployments.

The down side to using server core deployments is that they do not support native GUI management. You can manage a core server through a remote GUI interface, but before you can do that, you have to configure the core server to the point that it becomes remotely accessible.

Why Bother Using Core Servers?

As I stated a moment ago, server core deployments are ideal for virtualized environments because they have a smaller footprint and consume fewer server resources than traditional Windows Server deployments. Even so, you may be wondering if conserving a few server resources is worth dealing with the administrative headaches that go along with command line based server management.

While researching this article, I looked for some benchmarks that compare the resource consumption of a core server against that of a comparable Windows Server with the full GUI. Unfortunately, there are so many variables at work that I just couldn’t find any benchmarks that I considered to be truly representative for all situations. Even so, I think that there is another way that to look at the GUI vs. server core debate.

By far the biggest trend in IT is cloud computing. Right now there are vendors who are working to try to get their customers to move everything to the cloud. One of the major problems with doing so however (besides the fact that it has the potential to put IT pros out of work) is that cloud computing can consume a lot of Internet bandwidth. As cloud computing increases in popularity, you can bet that providers are going to be forced to take steps to reduce Internet bandwidth consumption. One of the most logical ways of accomplishing this goal will be to do away with the GUI interface, and provide subscribers with a command line interface for server management via server core deployments.

Additionally, you have to remember that the companies that are providing cloud services are using virtual servers. Making the switch to a server core environment will help these companies to reduce Internet bandwidth consumption, but it will also help them to make the most of their hardware resources.

Given these circumstances, I think that it will only be a matter of time before command line based server management becomes the norm. Administrators who want to have a relevant skill set will be forced to learn PowerShell.

Questions About Server Core

Now that I am done ranting about the future of IT, I want to turn my attention back to the issue at hand – running core servers on Hyper-V. If you have never worked with a core server before, you probably have plenty of questions. Some of those questions might include:

  • How can I install the Hyper-V integration Services?
  • What is involved in the initial provisioning process?
  • What kind of resources do I need to allocate to a core server?
  • Will my applications even run on a core server?

My goal in this article series is to answer these questions for you. As the series goes on, I will even walk you through the process of manually deploying and configuring a core server. For right now though, I want to talk about resource management.

Resource Allocation

It should come as no surprise that Microsoft provides a set of hardware requirements for Windows Server 2008 and Windows Server 2008 R2. What might surprise you though is that there is no separate set of requirements for a server core deployment. As such, it is up to you to figure out what resources your core servers really need.

According to Microsoft, Windows Server 2008 and Windows Server 2008 R2 can run with as little as 512 MB of memory. If you don’t know what the requirements will be for a server core deployment then my advice is to start out by allocating 2 GB to the server, which is the recommended minimum memory configuration for Windows Server 2008 (Microsoft does not provide memory recommendations for Windows Server 2008 R2). After that, you can use Performance Monitor to determine whether you need to allocate additional memory to the virtual machine, or if you can decrease the amount of memory that has been allocated.

What is Missing?

Another question that IT pros often have about Server Core is how it differs from a traditional Windows Server deployment. The most obvious difference between server core and a full Windows Server deployment is that a server core deployment does not have a true GUI.

You will notice that I said that core servers do not have a true GUI, not that core servers have no GUI. Core servers are missing things like start menus, and management tools, but they actually do have a GUI. In some situations it is actually possible to run GUI based applications on a core server.

Of course Microsoft has done more than just get rid of the Start menu and the management tools. Microsoft’s primary design goal when creating the core server was to reduce the server’s attack surface. In order to do so, they have removed several other features. For example, in Windows Server 2008, Microsoft did away with the .NET framework, Internet Explorer, and PowerShell for Server Core deployments.

By the time that Microsoft released Windows Server 2008 R2, they realized that the .NET Framework and PowerShell were both kind of important things to have. Some in Redmond wanted to continue to leave Server Core as stripped down as possible, while others wanted to add PowerShell and the .NET Framework to Server Core. As a compromise, the .NET Framework and PowerShell were both included with the Windows Server 2008 R2 version of Server Core, but are disabled by default.


Now that I have introduced you to some of the reasons for using Server Core in a Hyper-V environment, and have answered some of the questions surrounding Server Core, I want to turn my attention to deploying and configuring Server Core. I have always believed that it is better to learn by doing something rather than reading about it, so in the next article in this series I will begin walking you through the deployment and configuration process for Server Core.

If you would like to read the other parts in this article series please go to

Featured Links