When I worked at Microsoft I spent over a year working with Windows PowerShell (called Monad or Microsoft Shell (MSH) at the time).  PowerShell is a truly wonderful tool.  It is built on the .NET Framework and passes objects around instead of text.  It also allows a file system-like namespace to be built on any random storage provider, such as the registry, a database, environment variables, etc.

I have the good fortune in my current job to work with PowerShell again to build a namespace for a database application and to build commands to perform the various operations for that application.  It’s been quite a few years since I worked with it, however, and they’ve also changed quite a few things since then, so I’m finding myself having to relearn it.  While I’m doing that I would like to document my findings so that hopefully it will be useful to others (including others at my company who will use my PowerShell provider and cmdlets).

Where to get it

Windows PowerShell is available as a free download off the Microsoft web site.  The PowerShell web page has information on downloading it along with a plethora of information on using it and on others who are extending it.  Make sure you install the right one for your platform.  Also note that as of this writing Microsoft has released a CTP (Community Technology Preview) of Windows PowerShell 2.0.  I’m not prepared to dive in to a pre-release version yet, but it’s there if you want it.