Install GUI apps on Windows Hyper-V Server and Windows Server Core

More functional than it appears

chrome
Credit: Cypress North

For production server environments, it's recommended that you run the Server Core version of Windows Server 2012 which lacks a GUI. The purpose of that recommendation is that it reduces the resources required for the host operating system, reduces the attack surface because fewer applications are installed, and reduces the frequency of windows updates (less to update). This is especially important for virtualized servers since a reboot means potentially bringing down many machines. That's great and all, but doing everything by command line can be a serious pain and very time consuming. 

In our environment, we run several host servers with either Windows Server Core or simply the free and excellent Windows Hyper-V Server. We then have a virtual machine running the full version of Windows Server with the GUI and use it to manage all of the core servers. This usually gets us pretty far, but there are a lot of cases where remote management can't help you and you need to work directly on the server via command line.

When you log into one of these installs, you're greeted with a helper console, a command prompt, and that's it.

terminal Cypress North

There are a few tools in the sconfig shell, but it's not helpful beyond the initial setup of the machine. You do have powershell at your disposal, which is fantastic, but you'll really need to be an expert as writing powershell scripts to accomplish any substantial task. 

Though this install looks spartan, pretty much everything you need to run GUI based applications is still present. Getting an application downloaded is one powershell command away and not too difficult, then you're free to install it and run it just as you would in a desktop environment. I had a need to install Chrome for instance. Chrome is a bit tricky because it's hard to find a direct link to the setup file, so I ended up downloading the installer on my desktop and uploading it to a website to access it. To download a file from the web via powershell, the command looks like this:

Invoke-WebRequest http://somewebsite.com/ChromeSetup.exe -OutFile C:\Chrome\ChromeSetup.exe

Once downloaded, you can run the installer via command line by executing C:\Chrome\ChromeSetup.exe

To my surprise, the application installed just as it would on a desktop. You can then start the app by calling its executable. In this case "C:\Program Files (x86)\Google\Chrome\Application\Chrome.exe" and it will run as expected.

chrome Cypress North

This opens up the door for many more possibilities. You can install system and network tools, run IOMeter, or pretty much whatever else you want to do, all on the free version of Windows Hyper-V Server. In fact, someone has even cobbled together a bunch of tools to build a basic desktop on top of Windows Hyper-V Server 2012 R2. 

So for anyone like me who had assumed you were confined to the command prompt in server core installs, this should be welcome news and a relief for some sticky situations. I'm not sure how many GUI based apps will work, but it seems like many will. 

ITWorld DealPost: The best in tech deals and discounts.
Shop Tech Products at Amazon