What is PowerShell, and why learn another language
PowerShell is both a scripting environment and a scripting language meant to support administrators and developers alike in automating and integrating processes and environments.
You may already be familiar with other tools or languages that help accomplish your task, and you may be asking why you should even bother learning PowerShell. It is important to note that PowerShell is just another tool, but could be a very powerful one if used in the appropriate situations.
There are different reasons for using PowerShell:
Running a script is faster than clicking around the UI:
If we minimize clicks, or eliminate them in some cases, the task can potentially be done so much faster. Think about compressing, copying, archiving, and renaming multiple files. If we had to rely on the UI, this task may take much longer. However, if we can bake the logic into a script, and run the script once, then the task can be accomplished much faster and more efficiently.
Learning, and mastering, one language instead of five or ten:
Instead of using a duct-taped mishmash of scripting languages (batch file for some items, VBScript, Perl, COM), we can now use one single language to handle most tasks.
Leveraging the .NET library:
The .NET library provides a rich collection of classes that pretty much covers most programmatic items you can think of such as forms, database connectivity, networking, and the like.
Taking advantage of the fact that PowerShell is baked into different products:
More and more Microsoft products are being shipped with a growing number of PowerShell cmdlets because PowerShell scripting is part of Microsoft's Common Engineering Criteria program (http://www.microsoft.com/cec/en/us/cec-overview.aspx#man-windows). Windows Server, Exchange, Active Directory, SharePoint, SQL Server, to name a few, all have some PowerShell support.