Windows PowerShell, previously Microsoft Shell or MSH (codenamed Monad) is a command line interface (CLI) shell and scripting language product being developed by Microsoft. The interface is similar to Unix shells, but the product is based on object-oriented programming and the Microsoft .NET framework, and is highly extensible.
Microsoft originally intended to launch PowerShell along with Windows Vista, but later defined a separate release schedule for PowerShell. Microsoft has stated that it will be included as part of a general availability release which is scheduled for release in the second half of 2006. Windows PowerShell is the foundation of the administrative experience for Microsoft Exchange Server 2007 where everything is done via command line interfaces and the administrative GUI is layered on top of those commands.
PowerShell requires version 2.0 of the .NET Framework, and is supported on Windows XP, Windows Server 2003, Windows Vista, and Windows Server "Longhorn", and is available in x86, x64 and Itanium editions.
Additionally, for Unix admins, neither command.com nor cmd.exe are POSIX.2-conformant. Microsoft's Services for UNIX does include a POSIX.2-conformant shell pdksh but this and other Unix shells are still incapable of performing many routine tasks relegated to the Windows GUI. While the Services for UNIX suite is now built into Windows Server 2003 R2, and will be included with some editions of Windows Vista, it was previously a for-sale add-on, which provided a barrier to adoption.
Users have also been hindered by a lack of adequate documentation of command line functionality. By contrast, many GUI applications in Unix are only wrappers for documented command-line tools.
Microsoft attempted to address some of these shortcomings by introducing the Windows Script Host in 1998 with Windows 98. The Windows Script Host was a new scripting layer which could implement a variety of scripting languages to control applications. However, the Script Host proved unpopular because it was not integrated with the shell, its documentation was not very accessible, and it quickly gained a reputation as a system vulnerability after several high-profile computer viruses exploited substantial weaknesses in its security provisions.
Windows Server 2003 and certain versions of Windows XP included a command-line-based script host called Cscript.exe (essentially just a portion of the Windows Script Host introduced earlier), but it was not integrated into the existing shell (cmd.exe). These operating systems provided other ad hoc CLIs as well (netsh, for example), but they were not fully integrated, either.
Ultimately, the problem with Windows' automation was the fact that its native administrative interfaces were open to Microsoft's proprietary GUI-based tools, and any scriptable interfaces Microsoft chose to provide. The GUI was the primary interface, and it proved difficult to provide scriptable "wrappers;" this is exactly opposite most Unix implementations where the scriptable command-line provided the base functionality with any GUI simply wrapping around it.
Microsoft designed PowerShell to mitigate these problems — and to alleviate their onus of developing discrete GUI and CLI applications — by integrating a more secure scripting language into a new, extensible command shell capable of performing and automating the same core administrative tasks as graphical user interfaces typically have in Windows. Exchange Server 2007's management user interface, for example, is built on top of PowerShell. In most everyday tasks, PowerShell can be used in place of CMD.EXE and Windows Script Host (WSH). However, for backward-compatibility purposes both CMD.EXE and WSH will continue to be supported by Windows. Microsoft has committed to building future GUI tools on top of PowerShell, ensuring that the core administrative functionality remains scriptable, along the lines of a Unix operating system.
Microsoft published the second "Monad" public beta release on September 11 2005 and released Beta 3 on January 10 2006.
Microsoft announced on April 25 2006 that MSH was renamed to Windows PowerShell, positioning it as a significant part of their management technology offerings. Release Candidate 1 of PowerShell was released at the same time.
If accessed individually from the command line, a commandlet's output will automatically be converted into text, but if its output is to be used by another commandlet, it will be converted into whatever form of object is most appropriate for that commandlet's input. This has the advantage of eliminating the need for the many text-processing utilities which are common in Unix pipelines, such as grep and awk, as well as allowing things to be combined interactively, or in a scripting environment, which would otherwise require a more complex programming language. For instance, a listing of processes will consist not of text describing them, but objects representing them, so that methods can be called on those objects without explicit reference to any outside structure or library.
-show-detailed-information could be entered as -s if no other option began with 's')
.NET programming languages | Curly bracket programming languages | Dynamic programming languages | Dynamically-typed programming languages | Interpreters | Microsoft software | Microsoft Windows | Object-oriented programming languages | Procedural programming languages | Programming languages | Scripting languages | System administration | Text-oriented programming languages
This article is licensed under the GNU Free Documentation License.
It uses material from the
"Windows PowerShell".
Home Page • arts • business • computers • games • health • hospitals • home • kids & teens • news • physicians • recreation• reference • regional • science • shopping • society • sports • world