Windows PowerShell

Applies To: Windows Server 2008

Windows PowerShell™ is a new task-based command-line shell and scripting language designed especially for system administration. Built on the Microsoft .NET Framework, Windows PowerShell helps IT professionals and power users control and automate the administration of the Windows operating system and applications that run on Windows.

What does Windows PowerShell Do?

Built-in Windows PowerShell commands, called cmdlets, let you manage the computers in your enterprise from the command line. Windows PowerShell providers let you access data stores, such as the registry and certificate store, as easily as you access the file system. In addition, Windows PowerShell has a rich expression parser and a fully-developed scripting language.

Windows PowerShell 1.0 includes the following features:

  • 129 standard cmdlets that perform common system administration tasks, such as managing the registry, services, processes, and event logs, and using Windows Management Instrumentation.

  • A task-based scripting language and support for existing scripts and command-line tools.

  • Consistent design. Because Windows PowerShell cmdlets and system data stores use common syntax and naming conventions, data can be shared easily and the output from one cmdlet can be used as the input to another cmdlet without reformatting or manipulation.

  • Simplified, command-based navigation of the operating system, which lets users navigate the registry and other data stores by using the same techniques that they use to navigate the file system.

  • Powerful object manipulation capabilities. Objects can be directly manipulated or sent to other tools or databases.

  • Extensible interface. Independent software vendors and enterprise developers can build custom tools and utilities to administer their software.

Who will be interested in this feature?

Windows PowerShell is useful to anyone who wants to manage Windows from the command line, especially system administrators who are writing automated task solutions, and developers who want to write their own Windows PowerShell cmdlets, providers, and hosting applications.

Are there any special considerations?

Windows PowerShell is an object-based environment, so users need to understand how to manipulate data using object properties and methods. Most existing shells are text-based, which means that scripts must parse through text-based data to find interesting data. In the Windows PowerShell object-based environment, a script needs only to access the appropriate object property to find the interesting data.

What new functionality does this feature provide?

Windows PowerShell provides the ability to manipulate objects rather than just text. It provides a powerful scripting language based on the .NET Framework. It provides a consistent way of traversing data stores, such as the registry, through the concept of providers.

Additional references

In addition to the Help available at the command line, the following resources provide more information:

  • Windows PowerShell Help Online (https://go.microsoft.com/fwlink/?LinkID=107116). Provides updated help for Windows PowerShell cmdlets, providers, and concepts.

  • Windows PowerShell SDK (https://go.microsoft.com/fwlink/?LinkID=89595). Provides reference content used to develop cmdlets, providers, and hosting applications.

  • Windows PowerShell Programmer's Guide (https://go.microsoft.com/fwlink/?LinkID=89596). Provides tutorials for creating cmdlets, providers, and hosting applications. Also contains information about fundamental Windows PowerShell concepts.

  • Windows PowerShell Team Blog (https://go.microsoft.com/fwlink/?LinkID=83147). This is the best resource for learning from and collaborating with other Windows PowerShell users. Read the Windows PowerShell Team blog and join the Windows PowerShell User Forum (microsoft.public.windows.powershell). Then, as you develop your expertise, please freely contribute your ideas.