PowerShell is new command and scripting environment on windows platforms. Anyone who has used unix shells know the power of those scripting tools. On the other hand windows users had ms-dos command environment invented mostly for average users, advanced users can use cygwin linux-like emulation on windows as an alternative for scripting. PowerShell fills this gap, and it is for advanced users.
With PowerShell you can use extended scripting capabilities and full .net object-oriented support.
Mixing those two technologies scripting and .net results in highly powerful shell – PowerShell.
Ever interested in performing scripting operations over windows registry system?
dir hklm:\software
How about scripting on SharePoint platform ?!
$site = new-object Microsoft.SharePoint.SPSite(“http://sps/sites/testsite”)
Or … instantiate a SqlCommand object ?! yep it is possible. PowerShell can store instantiated objects into variables and combining them you can perform various complex automation processes, for example extending your build server with auto deployment capabilities on your staging server/s. Deployment processes can include removing/installing windows services, creating databases, setting permissions etc, this can be handled by PowerShell. This tool is a truly scripting heaven for .net developers.
I use it mainly for automate deployment processes on MOSS servers, I found this language as very flexible and powerful, I encourage everyone to start using/experiment and make your life easier.