Summary: Windows
PowerShell (formerly code-named "MSH", "Monad")
What is Windows PowerShell?
Windows
PowerShell is the new command line shell and scripting language for Microsoft Windows. It is available as a free download that runs on Windows XP, Windows Server 2003 and Windows Vista. Starting with the April CTP, support for
PowerShell is built into Windows Server "Longhorn" (although no support for Server Core).
For a good introduction to
PowerShell, see Jeffrey Snover's
Channel9 video#26795.
What can I do with Windows PowerShell?
A better question is what can't you do with it? Windows
PowerShell is a fully featured command line shell, on a par with the best Unix/Linux shells, e.g. Bash. It is also a powerful administrative scripting tool - think of Perl or Ruby with AWK, SED and Grep thrown in. And all of this is based on .NET - so you have direct access to the entire CLR, plus the ability to script existing COM (ActiveX) and WMI objects, like you can with
VBScript. Windows
PowerShell can also be added to your own application. The Exchange Server 2007 admin UI for example is written as an MMC Snap-in layered on top of
PowerShell. This means that everything you can do from the GUI, you can also do from the CLI (and more). System Center Operations Manager 2007 will also leverage Windows
PowerShell technology although not as richly as for Exchange 2007.
For more information on
PowerShell, visit http://www.microsoft.com/powershell/
Where can I get Windows PowerShell?
PowerShell version 1.0 is publicly available for Windows XP, Windows Vista and Windows Server 2003 (ncluding R2). For Longhorn Server, it is included in the product as an optionally installed feature.
To download PowerShell V 1.0, go to:
- http://www.microsoft.com/downloads/details.aspx?familyid=6CCB7E0D-8F1D-4B97-A397-47BCC8BA3806
- http://www.microsoft.com/windowsserver2003/technologies/management/powershell/download.mspx
- SDK http://windowssdk.msdn.microsoft.com/en-us/library/ms714469(VS.80).aspx
How do I install Windows PowerShell?
See also http://www.microsoft.com/technet/scriptcenter/hubs/msh.mspx for reference.
Scripting Language Details
For a quick overview of the Windows
PowerShell language, see
WindowsPowerShellQuickStart.
Extending Windows PowerShell
Windows
PowerShell is an extremely extensible environment. There are four ways that you can extend it:
- Scripts
- Cmdlets (tiny .Net classes which are surfaced as commands)
- Providers (a set of .Net classes which expose data. These are surfaced as "Drives" which you can interact with as if they were a filesystem drive)
- Snap-ins (assemblies containing cmdlets and can be loaded during startup time according to registry settings)
Sample Scripts
For a set of sample scripts, see
Sample Cmdlets
For a set of sample Cmdlets, see
WindowsPowerShellSampleCmdlets.
Sample Providers
For a set of sample Providers, see
WindowsPowerShellProviders.
Security
For information about Windows
PowerShell security issues & features, see
WindowsPowerShellSecurity
Where can I get more information?
For pointers to get more Windows
PowerShell information, see
WindowsPowerShellMoreInfo
Blog
Read blog by the Windows
PowerShell development team: http://blogs.msdn.com/powershell/
FAQ
One FAQ is located on www.microsoft.com/powershell and a second is a wiki-based Channel9 Windows
PowerShell FAQ
WindowsPowerShellFaq
MissingFeatures
See the
PowerShellMissingFeatures page to see more on features you think are missing from
PowerShell V1.
Upcoming events
How Can I Help?
Login to Channel9, and start editing. There is a TODO list which notes some bigger things that need doing, but feel free to add whatever turns you on!
Credits
Who is responsible for this sub site/wiki?
This sub-wiki was created by Thomas Lee (tfl {at} psp.co.uk). Other contributors (voluntary or otherwise!) include Alex K. Angelopoulos, Rober Abell, Greg Petersen, and Jeffrey Snover. No doubt more contributions will be forthcoming!