The Disappearing Windows Server GUI: The PowerShell Takeover
Knowing Windows PowerShell is no longer a bonus for IT professionals who work with Windows Server -- it's a requirement. As Windows PowerShell becomes more prominent, the Windows Server GUI is fading away.
Every time I got busted skipping history class as a kid, I always got the same old lecture about how history is important because it repeats itself. My standard smug response was that I planned on working in technology, and there was absolutely no danger of historic technology making a comeback.
I still think that holds true, for the most part. After all, I'm not about to trade my quad-core PC for a Commodore 64, or give up my Blu-ray player to go back to using VHS tapes. Every once in a while, though, technology can be cyclical.
A perfect example of this is the command prompt. I grew up with DOS in the 1980s. By the time I graduated from high school, I was something of a DOS expert. My first professional writing gig involved writing about Windows 95. Even though Windows 95 was GUI-based, almost all of the DOS commands I knew still worked. As such, many of the articles I wrote back then involved command line-based configuration changes and various scripting techniques.
I had a close friend named Shamir who made fun of me on almost a daily basis. Shamir's beef with my work was that the command prompt was dead, and I should try to make my readers' lives easier by showing them how to do things through the GUI. My argument was that the GUI was lame and far too restrictive. In the end, I think we were both right.
Of course, that was a long time ago. Today it seems as though Microsoft is returning to its roots by placing a much greater emphasis on the command prompt in its server offerings and gradually getting rid of the GUI.
Obviously, saying that Microsoft seems to be "gradually getting rid of the GUI" is a big statement. When I say the GUI is going away, my statement is purely speculative. I talk to people in Redmond on a regular basis, and nobody has said anything about getting rid of the Windows GUI. Also, I'm only predicting the demise of the Windows Server GUI. It would be incredibly foolish for Microsoft to try to do away with the GUI for client versions of Windows, and I don't see any evidence of Microsoft trying to do that.
Enter Windows PowerShell
So, what evidence is there that Microsoft is trying to get rid of the GUI? Let's start out by talking about Windows PowerShell.
You probably know already that Windows PowerShell is a command-prompt environment that's built into Windows. It supports many of the old DOS commands, but is different from the Command Prompt window (which still exists).
Windows PowerShell offers various commands (which Microsoft refers to as cmdlets) that you can use to perform administrative tasks. Windows also gives you the ability to create Windows PowerShell scripts by adding individual cmdlets to text files and saving the files with the PS1 extension.
On the surface, Windows PowerShell seems completely irrelevant to a discussion of the GUI's future. After all, Windows PowerShell is really nothing more than a command-line environment. The Command Prompt window, which is similar to Windows PowerShell in many ways, has existed for many years, and it never signaled the demise of the GUI. So, what's so special about Windows PowerShell?
Windows PowerShell is a lot more flexible and much more powerful than the Command Prompt window. Furthermore, my predictions aren't based on what you can do with Windows PowerShell -- they're based on what Microsoft is doing with it.
Consider Exchange 2007 and Exchange 2010. Both versions contain two primary management tools: the Exchange Management Console and the Exchange Management Shell. The Exchange Management Console is a GUI interface for managing Exchange, while the Exchange Management Shell is a management tool that's based on the command line.
Microsoft built the Exchange Management Shell on top of Windows PowerShell. The folks in Redmond simply extended Windows PowerShell to support a few hundred additional Exchange-specific cmdlets. What's interesting, however, is that the Exchange Management Console is built on top of the Exchange Management Shell. In other words, whenever you perform an administrative action through the GUI, the GUI actually produces a series of Windows PowerShell commands, which it executes behind the scenes. In fact, the Exchange Management Console even goes so far as to show you the Windows PowerShell cmdlets that were used in performing the requested action.
On the surface, it would seem that Microsoft has simply given Exchange administrators two separate but equal management tools. However, this is simply not the case. As any well-seasoned Exchange administrator will tell you, the Exchange Management Console only exposes the most basic management functions. As such, there are many administrative tasks that you can only perform from the command line. Keep in mind that I'm not talking about tasks that are obscure. I'm talking about common management tasks that every Exchange administrator will have to perform sooner or later. One example of such a task is restoring data from a backup.
You simply cannot be an Exchange Server administrator without knowing how to use Windows PowerShell. Of course, this trend isn't just related to Exchange Server. Many of the current Microsoft server products are designed in a way that requires administrators to spend a considerable amount of time getting cozy with Windows PowerShell.
If you want to see more evidence that Microsoft is starting to really push administrators to learn Windows PowerShell, you need look no further than the Microsoft certification exams. All of the exams I've been involved with lately included a significant number of questions pertaining to specific Windows PowerShell commands. You probably wouldn't be able to pass some of these exams without knowing the Windows PowerShell-related material.
By far the best evidence that I can cite for the eventual disappearance of the Windows Server GUI is the simple fact that Microsoft has already begun making the GUI an optional component. Windows Server 2008 and Windows Server 2008 R2 can both be installed in the usual way, but Microsoft also allows you to perform a Server Core installation. A Server Core installation is essentially a bare-bones installation without a GUI.
So, how do you use Windows Server without a GUI? You guessed it -- with Windows PowerShell. In all fairness, it's sometimes possible to use another server's management tools to remotely manage a server that's running a Server Core installation while using a GUI environment. Even so, you must perform the server's initial configuration by issuing a long series of Windows PowerShell cmdlets. Incidentally, there's a free third-party tool called Core Configurator that acts as a GUI for the initial configuration of a server core deployment. I reviewed the tool in last month's issue ("Cutting to the Core") and gave it a 10-out-of-10 rating. You can download the tool here.
You may wonder why anyone in their right mind would want to install Windows without the GUI. Although I personally like having a GUI, I've heard plenty of compelling arguments for ditching it. Probably the best reason is that when you get rid of the GUI, you reduce the server's attack surface.
Incentives for Adoption
Maybe it's just a coincidence, but it seems as though Microsoft may also be offering incentives for administrators to move beyond the GUI. For example, take a look at the way that Microsoft licenses Hyper-V.
Microsoft allows you to download Hyper-V Server 2008 R2 for free. However, the free version is a standalone product that doesn't include a GUI. If you want a GUI-based version of Hyper-V, you must invest in a copy of Windows Server 2008 or Windows Server 2008 R2 -- and these are definitely not free.
Why Is the GUI Going Away?
There's a lot of evidence pointing to the eventual demise of the Windows Server GUI. However, I can't just end this article without talking about the reasoning behind the GUI's great disappearing act. Even though I have no inside information from Microsoft on this matter, I can think of a few reasons why the company has started to lean more toward a command-line environment.
One of the reasons has to do with perception. Over the years, I've heard several different people refer to Windows Server as a "toy OS." Why? I think that perception may have started when administrators began to realize that you could play Solitaire on Windows NT Server, while the "more serious" OSes of the day such as Unix and Novell NetWare were primarily command-line based. In any case, this perception is something that Microsoft has never been able to completely shake -- though I doubt that it alone is enough to make Redmond pull the plug on the GUI.
Another, more plausible explanation has to do with the efficiency of managing large organizations. For example, if you needed to make a change to 1,000 user accounts, it's much faster to use Windows PowerShell commands than it is to manually modify each account one at a time through the GUI.
Server virtualization may also be driving the push away from the GUI. In a virtualized environment, the way you get the most bang for your buck is to make efficient use of your hardware resources. The server GUI consumes some resources, and by getting rid of the GUI you can allocate those resources to other tasks.
It's true that the amount of resources consumed by the host OS GUI is usually negligible. But sometimes a server may host more than a dozen guest servers, each of which may have its own GUI. Getting rid of the GUI on the host server -- and on all of the guest servers -- may free up a considerable amount of system resources.
A Gradual Disappearance
For now, Microsoft customers have the option of either installing a GUI-based version of Windows Server, or deploying Windows Server without the GUI. Even so, learning Windows PowerShell is no longer optional. There are simply too many management tasks that can only be performed from the command line. Even if the GUI never completely goes away, I expect the command line -- and Windows PowerShell -- to become increasingly more important to Windows server management.
Bonus Links: Want to get started with PowerShell? Check out our sister site MCPmag.com's Professor PowerShell column by Jeffrey Hicks for great, hands-on tips for digging in to PowerShell and Windows administration. Here's just some of the recent ones to get you started: