TechEd 2006: Microsoft demonstrates first PowerShell release candidate

Boston (MA) - At a packed session Tuesday morning at TechEd 2006, Microsoft software architect Jeffrey Snover, demonstrated the first release candidate of the Windows command line shell now called PowerShell, sometimes still referred to as Monad. There, he revealed to the crowd that it is a design goal for PowerShell to run as the command provider for all Windows administrator tools, including Microsoft Management Console.

"We have architected this such that all of the admin GUIs can be layered on top of the command line shell," stated Snover. Imagine anything you can do now with MMC, and being able to accomplish that through verbal commands and scripting rather than plugging away at endless dialog boxes - click OK, click OK, click OK, scroll-up, right-click...

As we've covered here in TG Daily for over a year, PowerShell is slated to be the principal command line tool for Windows Vista and "Longhorn" server, although at present, Microsoft has no plans to ship it as a component of an operating system. Instead, it will make PowerShell available for free (as it does for the RC1 version presently) through the company Web site.

The many faces of Microsoft's Jeffrey Snover, lead architect of PowerShell.

Whether Snover's statement means PowerShell will eventually serve as the command driver for admin GUIs is unclear, and probably depends on several factors, mere popularity being just one of them. But the underlying architecture will be there, so it may be up to other divisions of Microsoft to determine whether all of the so-called "snap-ins" which presently provide graphical functionality to admins in Windows Server, will have the option of deferring to PowerShell as their "engine." It's certainly feasible.

A lot will depend on admins' willingness to learn an entirely new concept of commands. As we've reported here before, PowerShell is not at all based on DOS, nor on the Korn shell that's popular among UNIX and Linux admins.

"PowerShell is a new tool. I am asking you to invest your time and effort to learn this new tool. I treat that ask with incredible respect. I know that you're busy people. I know that your hair's on fire, and you don't have a lot of time to deal with this stuff...What that means is, I'll try to ask you to learn a minimal set of [commands], and when you learn something, I'm going to use it over and over and over again so that your investment is a good deal."

One example from the long road of developing "Monad," Snover related, is settling on the verb stop. While PowerShell has a very verbose lexicon (that goes both ways, if you've ever seen its get-help pages for a command), it actually uses a minimum of words to accomplish this. Historically, command lines have used multiple terms to mean putting an end to something - with processes, it's been "kill" or "delete" or "remove." PowerShell settled on stop; and as Snover explained yesterday, his team's plan is to use only that verb when something needs to be ended.

For example, the stop-process command (or cmdlet, pronounced "command-let") will bring a process such as Notepad to a screeching halt, while stop-service will end the run of an OS service. That is, unless, you use the -whatif switch to simply preview what the effects would be of stopping a process, prior to actually doing it.

Stay in touch with TG Daily throughout the week for more from Microsoft's TechEd 2006 conference in Boston.