What's New in Windows PowerShell

Applies To: Windows 7

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

The simple command tools in Windows PowerShell, 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 the certificate store, as easily as you access the file system. In addition, Windows PowerShell has full support for all Windows Management Instrumentation (WMI) classes.

Windows PowerShell is fully extensible. You can write your own cmdlets, providers, functions, and scripts, and you can package them in modules to share with other users.

Windows® 7 includes Windows PowerShell 2.0. It also includes other cmdlets, providers, and tools that you can add to Windows PowerShell so that you can use and manage other Windows technologies such as Active Directory® Domain Services, Windows® BitLocker™ Drive Encryption, the DHCP Server service, Group Policy, Remote Desktop Services, and Windows Server Backup.

What's new in Windows PowerShell?

The following changes are available in Windows PowerShell in Windows 7:

  • New cmdlets. Windows PowerShell includes more than 100 new cmdlets, including Get-Hotfix, Send-MailMessage, Get-ComputerRestorePoint, New-WebServiceProxy, Debug-Process, Add-Computer, Rename-Computer, Reset-ComputerMachinePassword, and Get-Random.

  • Remote management. You can run commands on one computer or hundreds of computers with a single command. You can establish an interactive session with a single computer. And, you can establish a session that can receive remote commands from multiple computers.

  • Windows PowerShell Integrated Scripting Environment (ISE). Windows PowerShell ISE is a graphical user interface for Windows PowerShell that lets you run commands, and write, edit, run, test, and debug scripts in the same window. It offers up to eight independent execution environments and includes a built-in debugger, multiline editing, selective execution, syntax colors, line and column numbers, and context-sensitive Help.

  • Background jobs. With Windows PowerShell background jobs, you can run commands asynchronously and "in the background" so you can continue to work in your session. You can run background jobs on a local or remote computer, and you can store the results locally or remotely.

  • Debugger. The Windows PowerShell debugger can help you debug functions and scripts. You can set and remove breakpoints, step through code, check the values of variables, and display a call-stack trace.

  • Modules. Windows PowerShell modules let you organize your Windows PowerShell scripts and functions into independent, self-contained units. You can package your cmdlets, providers, scripts, functions, and other files into modules that you can distribute to other users. Modules are easier for users to install and use than Windows PowerShell snap-ins. Modules can include any type of file, including audio files, images, Help files, and icons. Modules run in a separate session to avoid name conflicts.

  • Transactions. Windows PowerShell now supports transactions, which let you manage a set of commands as a logical unit. A transaction can be committed, or it can be completely undone so that the affected data is not changed by the transaction.

  • Events. Windows PowerShell includes a new event infrastructure that lets you create events, subscribe to system and application events, and then listen, forward, and act on the events synchronously and asynchronously.

  • Advanced functions. Advanced functions behave just like cmdlets, but they are written in the Windows PowerShell scripting language instead of in C#.

  • Script internationalization. Scripts and functions can display messages and Help text to users in multiple languages.

  • Online Help. In addition to Help at the command line, the Get-Help cmdlet has a new Online parameter that opens a complete and updated version of each Help topic on Microsoft TechNet.

Who will want to use Windows PowerShell?

The following groups might be interested in these changes:

  • IT professionals who want to manage Windows at the command line and automate administrative tasks.

  • Developers who want to use the extensive Windows PowerShell scripting language to build .NET Framework applications and extend Windows PowerShell.

  • All users who want to learn Windows PowerShell to manage their system, write scripts to automate their tasks, and create new tools without having to learn a programming language.

What are the benefits of the new and changed features?

Windows PowerShell provides these new management features, among many others.

Remote Management

Windows PowerShell remote management lets users connect to and run Windows PowerShell commands on all of their computers. IT professionals can use it to monitor and maintain computers, distribute updates, run scripts and background jobs, collect data, and make uniform, optimized changes to one computer or to hundreds of computers.

Windows PowerShell ISE

Windows PowerShell ISE makes it easier and more efficient to use Windows PowerShell. Beginners will appreciate the syntax colors and the context-sensitive Help. Multiline editing makes it easy to try the examples that you copy from the Help topics and from other sources. Advanced users will appreciate the availability of multiple execution environments, the built-in debugger, and the extensibility of the Windows PowerShell ISE object model.

Modules

Windows PowerShell modules make it easier for cmdlet and provider authors to organize and distribute tools and solutions. And, they make it easier for users to install the tools and add them to their Windows PowerShell sessions. IT professionals can use modules to distribute tested and approved solutions throughout their enterprise and share them with other professionals in the community.

Transactions

Windows PowerShell transactions let you use Windows PowerShell to make changes that might have to be rolled back or committed as a unit, such as database updates and changes to the registry.

What's the impact of these changes on Windows PowerShell?

Windows PowerShell has the following system and feature requirements:

  • Windows PowerShell requires the Microsoft .NET Framework 2.0.

  • Windows PowerShell ISE, the graphical user interface program for Windows PowerShell, requires the Microsoft .NET Framework 3.5 with Service Pack 1.

  • The Out-GridView cmdlet requires the Microsoft .NET Framework 3.5 with Service Pack 1.

  • The Get-WinEvent cmdlet requires Windows Vista or later versions of Windows and the Microsoft .NET Framework 3.5.

  • The Export-Counter cmdlet runs only on Windows 7 and later versions of Windows.

  • The WMI-based remoting features of Windows PowerShell require no configuration and run on all versions of Windows that support Windows PowerShell. The WS-Management-based remoting features require both the local and remote computers to run Windows Vista or a later version of Windows. Also, you must enable and configure WS-Management on all participating computers. For more information, see About_Remote.

  • Several cmdlets work only when the current user is a member of the Administrators group on the computer or when the current user can provide the credentials of a member of the Administrators group. This requirement is explained in the Help topics for the affected cmdlets.