According to Holmes (2008) Windows PowerShell is defined as task automation framework of Microsoft that consist of a command-line interface tool and related scripting language built upon and incorporated in the .NET Framework. This is a computer language that allows for maximum access to WMI and COM, making it easier for administrators to carry out administrative undertakings on both remote and local Windows systems. Administrative tasks in PowerShell are usually performed by specialized .NET classes referred to as cmdlets and are meant to implement a specific operation.
Cmdlets is pronounced as command-lets and can be defined as specialized commands within the PowerShell environment used to implement specific functions (Deshev, 2008). Sets of cmdlets are sometimes combined together in executables, scripts, or by setting up instances of WMI/COM objects or regular .NET classes. In due course of any processes, data is accessed in various data stores such as registry or file system, which are availed to the PowerShell runtime through providers of Windows PowerShell (Holmes, 2008).
Window PowerShell offers a hosting mechanism which makes it possible for the Windows PowerShell runtime to be embedded within other applications. The applications, in return, leverage the functionality of Windows PowerShell to implement certain operations, inclusive of those operations that are exposed through the graphical interface. Examples of applications that have found Window PowerShell useful include Microsoft Exchange Server 2007 and Microsoft SQL Server 2008 (Deshev, 2008).
Microsoft Exchange Server exposes it management functionality in form of PowerShell providers and cmdlets as well as implementing the graphical management tools to invoke the required cmdlets. Microsoft SQL Server 2008 exposes its management through PowerShell cmdlets. All Microsoft applications that run on the Windows platform are believed to be aware of PowerShell in the future. PowerShell uses pipeline as a concept to create complex commands which allows the output of each command to be passed to another as input (Holmes, 2008).