Lets frame this article from the beginning by pointing out that this is all wild speculation on my part.
Now that the terms are set …
It seems that PowerShell continues to become more fully featured every day. If we haven’t yet reached it, it seems as though we are close getting to the stage that almost every task that can be performed from the Windows CLI can be performed using PowerShell.
As PowerShell has grown over the last few versions of Windows Server, the cmd.exe environment appears more something provided for backwards compatibility and to allow administrators to manage from the command line those small areas that PowerShell doesn’t yet reach. There isn’t any point even trying to compare the number of new cmd.exe commands with the number of new PowerShell commands in the last few releases of Windows Server.
One method of making software more secure is to remove the bits that aren’t needed. Server Core is more secure than Server with a GUI because it doesn’t have all the additional software elements required to present the GUI to an administrator. Put another way, by removing the GUI elements of a Windows Server deployment, you reduce the attack surface.
With that in mind, it’s possible that at some point, the cmd.exe based CLI will become an optional component, like the GUI currently is in Windows Server 2012 R2. That at some point in the future, the default installation of Windows Server may not include cmd.exe just as the default installation option of Windows Server 2012 R2 is Server Core. This doesn’t mean that it will disappear. It’s likely that if this course of action was pursued, Administrators who do need the cmd.exe environment could run the Install-WindowsFeature cmdlet to add it. However, by removing the cmd.exe based CLI, the attack surface of a future version of Windows Server could be further reduced.
Anyway, all of this is wildly speculative on my part. It comes from noticing that PowerShell has evolved to the point where it is rarely necessary to use the cmd.exe environment. Now it may be that there’s something deeper that I don’t understand going on with the architecture of Windows Server that means that cmd.exe will always be needed. My suspicion, though, is that is not the case.
If things do develop with PowerShell in terms of functionality to the point where cmd.exe is no longer required, is it likely that Microsoft include it in a default installation of Windows Server?
We shall just have to wait and see.
Orin Thomas is an MVP, an MCT, a Microsoft Regional Director, and has a string of Microsoft MCSE and MCITP certifications. He has written more than 30 books for Microsoft Press on IT Pro topics including Windows Server, Windows Client, SQL Server, Exchange, and System Center. He is an author at PluralSight and is a contributing editor for Windows IT Pro. You can follow him on twitter @orinthomas