It’s no secret that I’m a fan of PowerShell, and almost everything I do in Windows Server and Microsoft Azure involves using the command line. There are a couple of key reasons for the shift away from the GUI: namely the increasing frequency in which PowerShell is required to utilize certain features, especially in Azure; and the need to redeploy environments quickly at a later date, something made a necessity by the nature of cloud computing, without manually clicking through endless wizards.
Another advantage that shouldn’t be overlooked is that using PowerShell to configure Windows Server helps to develop a better understanding of the technology. For example, it’s easier to comprehend what you’re doing and why.
A Headless Future
Microsoft is pushing PowerShell as the must-have configuration tool for Windows, but its minimal Server Core option for Windows Server, despite being the default installation type in Windows Server 2012 R2, hasn’t quite caught on. Notably even the Windows Server images in Azure play it safe and use the full GUI.
If you take the plunge and use Server Core to reduce overhead and the attack surface, there are some tools that you’ll miss out-of-the-box if you don’t have the Remote Server Administration Tools (RSAT) configured on a management PC, particularly Server Manager and Event Viewer. To learn more about RSAT, see Remote Server Administration Tools (RSAT) for Windows 8: Download and Install on the Petri IT Knowledgebase.
Server Manager’s dashboard provides an overview of the health and status of servers in your environment, and this kind of information is most easily observed in graphical form. Deprived of this handy visual indication of the current state of your environment, it might feel that you’re left in the dark, as it provides a reassuring everything’s OK message that you’ll be left without if you boot to the command prompt.
Similarly management tools that provide an overview of the hierarchy of Active Directory, such as Group Policy Management (GPMC) and Active Directory Users and Computers (ADCU), are useful for understanding how a system is designed and structured. And while PowerShell can be an excellent tool for working with the Event Logs, Event Viewer still provides a convenient way to get a visual overview of current issues in an environment.
If you decide to run Server Core in the cloud, you’ll need to do some additional configuration work to be able to connect to those servers from on premise devices using Server Manager. For more information on how to monitor servers running in Azure, see Manage Servers using Server Manager in Windows 8.1 on the Petri IT Knowledgebase, or an alternative and better solution is to configure a VPN between Azure and your on-premise network.
Windows Server for DevOps
That said, PowerShell is going to be key going forward with Microsoft’s plans to further streamline Windows Server, beyond what’s already been achieved in Server Core, with a Nano install option. Not only will the lack of GUI continue to require PowerShell skills, but PowerShell is better suited to the configuration and management of multiple distributed systems than GUI management tools.
Server vNext’s Nano install option is linked to the new Docker-based containerization features, and as I outlined in Why is Windows Server vNext Delayed Until 2016?, this is the key reason why it’s delayed until 2016. In Microsoft’s own words, Nano will bring high density and performance for container-based apps and micro-services, with an emphasis on next generation distributed application development frameworks, specifically .NET CoreCLR and ASP.NET vNext, which was previously known as ProjectK.
But well-loved GUI tools are not dead in Server vNext. Microsoft is planning to provide new web-based versions of tools such as File Explorer, Task Manager, Registry Editor, and Event Viewer. There’s no mention of Server Manager, but a web-based version would seem something of a no-brainer. For more information on Nano in Windows Server vNext, check out Leaked Slides Reveal Windows Server vNext Nano Server Role on Petri.