Summary: PowerShell is a tool without a mission.
PowerShell is Microsoct’s Command Line tool for management and monitoring, circa 2007 onward.
<rant>
Remind me why PowerShell exists again?
Someone woke up one day and said “wouldn’t it be great if…. we had all the CLI (Command-Line Interface) tools and scripting capability of UNIX!!!”, so they wrote PowerShell.
One of the main problems is that, while it’s VERY COOL that PowerShell snaps in to everything (or rather, everything snaps in to PowerShell), the syntax is unique — it’s NOT related to Borne shell scripts, it’s NOT related to batch files, it’s NOT related to VB script.
Also, just like VB script, it’s just a cover for WMI (Windows Management Instrumentation).
So KNOWING that Microsoft made it’s first buck off of BASIC, and that high-schools have been teaching BASIC for 30 years, who decided that PowerShell should have its own syntax? AND FOR SAKES OF PETE, WHY A UNIQUE SYNTAX????
The beauty of VB script is that people could pick it up and play with it because they already had been exposed to BASIC. If BASIC was insufficient, why not make it syntactically-similar to Borne Shell, or PERL, or anything that people actually might already know?
PowerShell brings nothing new (over VBScript) and incurs a learning curve, so therefore, PowerShell has no reason to exist, and doesn’t effectively accomplish the mission for which it was created.
I refuse to learn it. I’ll copy and paste all day long from “Google Code”, as a card-carrying member of the “PowerShell SUCKS” fan club. Given Microsoft’s track record, I expect that PowerShell will be shortly deprecated for no obvious reason, anyway, saving me the time and effort of learning a dead language.
Meanwhile, if you need a bad-ass shell script written, I can do that for you in DOS, GWBASIC (since 1981), QBasic (since DOS 5.0), VB/VBA (since 1994), KixStart (The “unofficial” scripting language of Windows NT), VBScript (since 1998), Windows CMD batch file (Old syntax since NT 3.5 or new syntax since Windows 2000), or even as a GNU Win32 / Cygwin Borne Shell script (native since 1994 or Win32 since 2002).
Stated more concisely: You know what’s so cool about PowerShell? Nothing!
</rant>
Powershell, like most shell languages, is a Domain-Specific Language, or DSL, that makes it easier to express commands that have to do with administration – for example, working with the file system, setting up command pipelines, and working with the registry. It is actually fairly similar to other shell scripting languages like bash, except that if anything it is simpler when it comes to serious scripting.
It is also extremely powerful, more so than any other shell environment. If you don’t like shell scripting, VBScript still exists, or you can write scripts in Python. But, you will be missing out.