More Power to your Shell
Vijay from iQubed has blogged about the new Windows Powershell ('WSH'). The point he makes is that Microsoft has always accused Linux of being 'difficult to manage' because of its command line driven interface and now, suddenly when Windows finally gets a decent command line shell, it's the best thing since sliced bread.
To be fair, Vijay, I really think you might want to spend some time with WSH before you compare it to the various flavours of Linux shell. Windows Powershell is a long way ahead of traditional text-based shells such as csh, ksh and so on. The important difference is that Windows Powershell operates fundamentally on .Net objects, not text. In traditional shells, a lot of the complexity was around getting things into the right format, passing the data along a pipe from one command to the next in text format. The things we need to manage on our computers are pieces of software composed of components and objects. WSH deals with these objects directly, passing objects (not text) along the pipeline. The results are not converted into text unless they actually need to be displayed. Dealing directly with objects is very a very powerful concept and gives you the full power of the .Net framework at your command. The power is not immediately obvious because WSH's command line interface belies its true abilities for managing, configuring and automating things.
So why does this make for increased productivity? Consider Exchange 2007. Like all software, exchange is software consisting of a collection of objects and interfaces. These objects can be directly manipulated by WSH – Exchange 2007 can be completely configured by WSH on the command line. Exchange also has a graphical user interface built on Microsoft Management Console. Anything that can be done in the GUI can also be done in WSH. Previously, the MMC snap-in would communicate directly with the software being configured, but in exchange 2007, things are different. The GUI, instead of talking directly to exchange, actually generates a WSH script, which WSH then executes and you can watch it doing this. That script can be captured, saved and edited for later use in similar situations and applied on many computers or across the entire enterprise! Administrators can try things out in the GUI, which writes a script for them that they can save and adapt.