Server Core & MinShell in Windows Server 2012 R2

Some of us are just used to one way of managing a server. Be it a Linux or Windows we still prefer the old command line to save time and effort (number of clicks) in a away. Microsoft has introduced Server Core and MinShell features for those who prefer having some transparency with command line while keeping GUIs at hand’s distance.

Server Core

This feature offers a command line management console like MS-DOS. It is ideal when you want reduce the resource consumption of your server. If you don’t use full GUI that means there are lesser number of patches that you need to worry about.

You can turn on/off Server Core at any time as well as switch back to Full GUI. Only thing that you need to have to do is install/uninstall a feature called “User Interfaces and Infrastructure” that provide the underlying GUI for windows server. You can do it via server manager or PowerShell the choice is up to you.

A complete guide can be found here from howtogeek.com

Keep in mind you’ll need a restart every time you switch back from either of these modes.

MinShell (Part GUI)

This one is same like server core but you can launch your favorite MMC snap-ins from command line. But there are some notable limitations on this one.

  • Common Dialog box is functional (except networking)
  • Any UI with dependencies on items implemented as Shell Namespace Extensions will fail
    • Certain CPLs are namespace extensions, e.g. Networking
  • Internet Explorer is not available when Server Graphical Shell is uninstalled.
    • Links in UI won’t work.
    • Help isn’t available – calls
  • Some file associations and protocol handlers broken
    • http://
    • file://
    • *.chm
  • Some DLL files not installed
    • Check for dependencies or delay loads might fail!
    • DUMPBIN (Windows SDK)
    • Dependency Walker (http://www.dependencywalker.com, freeware)
    • Test your applications on the Minimal Server Interface!
    • to HTML Help API will return NULL!

All you have to do is uninstall Server Graphical Shell sub feature from User Interfaces and Infrastructure feature. Just use below PowerShell cmdlet to do so.

Uninstall-Windowsfeature -name Server-GUI-Shell -Restart

If you want you can completely remove the binary installation files for above features as well. If you do so you’ll need acess to an installation media the next time you want to enable it. To completely remove a role or feature, use –Remove with the Uninstall-WindowsFeature cmdlet of Windows PowerShell.

It’s not rocket science but it is indeed worth having a look at.