Stripped to the bare core

I saw a comment by Andrew Fryer (Blog | Twitter) at the end of last week about Denali requiring .net 4.0 and so not being compatible with a Core install of Windows Server.  This reminded me of Windows Server Core and how as a Solution Architect I should probably consider more often how I could make use of them.

The thing which attracted me to it was the idea of making almost a SQL Server appliance Windows build.  DBAs couldn’t remote desktop on to the server and run SSMS, they would have to do it from their desktop and the important SQL Server instances and their operating systems would remain distanced from tinkering DBA hands.  On top of that, all the parts of Windows which seem to attract vulnerabilities and patches wouldn’t be around so fewer patching reboots would be needed.

Core installs for Windows Server are low footprint installations of the server OS with a basic UI and command line which are designed to reduce the OS’s vulnerability surface area and maintenance overhead.  They do this by removing the most common sources of un-necessary administrative tasks for some server workloads, essentially Explorer, Internet Explorer, the MSI based installation infrastructure or in fact most of what almost any use of Windows Server requires.

Yes, I sounded quite disappointed there, for a good reason, other than for basic infrastructure services (domain controller, file/print server, Hyper-V host and IIS applications) Windows Server core lacks the components needed for real world application infrastructure use.  When someone I know tested it for a server server build he found he couldn’t even install the backup agent, anti-virus or monitoring tools he needed to slot the server into the existing management platform. 


So what do you get when you boot up?  This…..just a command line, although there is PowerShell around for doing some clever stuff.



There’s a great tool built on PowerShell for configuring a core installation called Core Configurator on Codeplex (link).  This is the closest the platform comes to having an administration interface, and it’s actually a useful way to do all the post-installation config steps you like doing with a Windows build.



If you want to configure your installation to be one of the out the box core installation roles then Core Configurator will get the ball rolling for you, creating PowerShell scripts behind the scenes to perform un-attended setups for each Windows feature you request.

I suspect given the built-in roles a core installation will make a very good Hyper-V host, the host itself protected on a management next, the guest VMs on the traditional server network.  Although you need to make sure you hardware drivers and monitoring tools can all be installed using the basic UI. 


So that might provide you with your core infrastructure running on reduced footprint installations, but what about the core business value IT delivers, the applications? 

Well, unless you can deploy your .net app to the IIS platform included in the core installation, and there’s no reason why you shouldn’t be able to, then you’re stumped.

SQL Server isn’t supported on a core installation, yet at least, I suspect that’ll be a big new feature in Denali, although Joachim Nässlander has blogged about getting SQL Server 2008 installed on a core installation (link).  It’s not supported by Microsoft, in fact I bet they hate its possible, but I did get his steps to work. 


What is worth it?  No!  I’m still yet to being to write PowerShell at the speed my hand can use the mouse to control a GUI configuration app.  However, the point was made, you can make a SQL Server appliance, almost.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s