What is it?
Windows Powershell has been hailed as the tool that grown-up systems administrators, frustrated by progressive dumbing down of their jobs by graphical user interfaces (GUIs), have been waiting for. It has also been seen as a tribute to Linux and Unix, which have always treated their systems administrators as skilled professionals...
-- though sometimes at the cost of a daunting learning curve.
PowerShell is a command line shell and scripting language, built on top of the .net Framework. It introduces cmdlets ("commandlets"), which are single function command line tools built into the shell. Powershell comes with more than 130 cmdlets, and users can build their own to refine or automate tasks. They can be used separately, or combined for more complex tasks.
Powershell can run with current and earlier Windows releases, and is included with Windows Server 2008. Powershell is used in many other Microsoft Server Products, such as the Exchange Management Shell shipped with Exchange Server 7, but overlaid by a GUI console in SP1.
Where did it originate?
Prior to the release of Powershell (codenamed Monad) in 2006, systems administrators had to rely on the very basic command line interface tools shipped with MSDos and Windows, using APIs which supported Jscript and VBScript for more complex scripting. Powershell 1 for Vista was released alongside Vista in 2007. Jeffery Snover, one of the architects of Powershell, says it drew on the IBM AS/400 and Digital VMS command languages as well as on Unix and Linux.
What's it for?
According to Microsoft, Powershell includes "numerous system administration utilities, consistent syntax and naming conventions, and improved navigation of common management data such as the registry, certificate store, or Windows Management Instrumentation." They describe the scripting language as "intuitive".
Windows 2008 administrators use it for tasks such as automating Terminal Server configuration changes, or deploying and configuring IIS 7.0. Powershell also includes a managed hosting engine and APIs enabling the Powershell runtime to be included in other applications and to support a graphical management interface for the commandlets, as has been done with the management console in Exchange Server 7 SP1. The APIs are being simplified in version 2 of Powershell.
Being built on .net, Powershell accepts or returns .net objects rather than text. But despite this major change, Microsoft says Powershell works with existing scripts and command line tools.
What makes it special?
As the Powershell team blog succinctly puts it, "if you work with Microsoft Server products, you are going to be a Powershell user".
How difficult is it to master?
Microsoft says Powershell is "easy to adopt, learn, and use because it does not require a background in programming", but others are not so sure: according to O'Reilly's WindowsDevCentre, "starting to learn it, unfortunately, can be a bit overwhelming at first."
What systems does it run on?
Powershell 1.0 supports Windows XP SP2, Windows Server 2003, Vista and Windows Server 2008, though you will have to download it from Microsoft online for all except Windows Server 2008, where it is available as an optional component on the installation disk or via Server Manager. You will also need .net Framework 2.0.
What's coming up?
Rates of Pay
Windows Server administrators £30,000 to £40,000.
Powershell downloads include a getting started guide and free primer, and links to sample scripts. There is a free Powershell "owner's manual" online.