PowerShell: A Better CMD.EXE
Every systems administrator and power user is very familiar with CMD.EXE: the command line interpreter for Windows. Its used for running applications from the command line, and also for performing administrative tasks with batch files. Not much has changed with the traditional command line interpreter from the days of DOS 1.0. The batch language has improved and more functionality has been added, but its still very limited and not as capable as Linux command shells (i.e. bash).
Taking on Bash
All of this has changed with Microsoft’s PowerShell. This is a vastly improved command line shell with a built-in programming language. The language is very similar in capabilities to PHP or Perl and works very well with creating small utilities for Windows. The big advantage of PowerShell over Linux shells is the vast .NET Framework that it has access to. You can write a script that can extract data from a Microsoft SQL Server database, send it by FTP to a remote folder, and then send an e-mail notifying a user where they can find the files that were transferred. Before this, a batch file would have to call external applications to perform the FTP and e-mail functions.
PowerShell scripting can easily be replaced by any of the Visual Studio .NET languages, but it has the advantage of being able to edit source code and immediately execute it.
Apart from scripting, the shell is also very good for executing commands, or cmdlets as they are called, from the command line. With this, you can perform complex operations that would require a great deal of programming to do.
Choose the Right Version
If you search Microsoft.com, you will find Windows PowerShell 1.0, but I would not recommend using this version. A better choice is the Community Technology Preview version of PowerShell 2.0. This version supports running scripts on a remote machine, creating cmdlets with its scripting language, reusable modules for organizing scripts, a GUI integrated scripting environment, and many more useful features.
Uninstalling PowerShell 1.0
Before you can install PowerShell 2.0, you need to uninstall version 1.0 if you installed it previously. This can be done by checking on the Show updates box in Add or Remove Programs (Control Panel). This is required otherwise Windows PowerShell will not be visible for uninstalling. You can find it in the Windows Software updates section.
Is It Worth Learning?
PowerShell is a powerful scripting language and can hold its own again PHP and Perl. The command line interpreter will save you time as a Windows administrator and you won’t go back to CMD.EXE or batch files after learning it. PowerShell is worth the effort in mastering it.