November 21, 2006
Microsoft released Windows PowerShell 1.0 a week or two ago, and I’ve heard a lot of positive things about it so far. The easiest way to describe PowerShell is to imagine a Unix command line shell, but with all kinds of design hints and functionality from the .NET programming language and Windows administration tools.
I was skeptical at first; I don’t use the command line much at work, and when I do I always have a *nix terminal nearby. The PowerShell “cmdlets” have different names than their DOS or Unix counterparts, so there’s a bit of a learning curve, even though PowerShell uses a pretty standardized naming scheme ((You can, and will probably want to, create aliases for common commands. This is why “ls” works by default.)). Spending some time with it changed my opinion though. The fact that you can run WMI queries right from the command line (normally you would write a .NET or vbscript application to run them) is enough to make me want to learn more. The scripting support seems nice as well, since it supports C# language concepts like foreach and doesn’t rely on text formatting tools to pipe data from one command to another (data is piped in the form of .NET style objects).
The only question now is if PowerShell will be the de-facto shell in future releases of Windows, or if it’ll silently gather dust until it’s forgotten altogether. If you read the PowerShell blog the development team seems pretty excited about integration with all the Microsoft server technologies like IIS and Active Directory, but I really think it could go either way, especially since it was one of the early features cut from Windows Vista.