PowerShell v2 is included with the forthcoming Windows 7, but you can take advantage of it in your business now. PowerShell is much more than a command-line interface replacement for CMD.exe (though you could limit yourself to just that usage). It's also a scripting language designed for admins to improve administrative control, as well as to add to efficiency and productivity.
Based on the Community Technology Preview version (so some features will improve or change in the final release), PowerShell v2 offers the following enhancements:
- New and improved cmdlets. There are about 240 new cmdlets (the components of scripts) covering a wide range of functions such as remoting, type conversion, event viewing, script internalization, modules, transactions, debugging, eventing, background jobs, and WMI.
- PowerShell remoting: Using WS-Management, you can now use cmdlets and scripting on remote systems (or multiple systems).
- Transactions: Transacted operations include a rollback capability through the PowerShell Registry provider.
- Modules: You can create modules that contain scripts and execute in self-contained, restricted runspaces.
- Integrated Scripting Environment (ISE): This provides a GUI for PowerShell, with tabbed panes for up to eight Unicode-enabled consoles. (Get to it by choosing PowerShell in the Start menu's Accessories submenu.)
- And more: Background jobs, script cmdlets, steppable pipelines, data language, script debugging, eventing, network file transfer, new operators, exception handling with Try-Catch-Finally, nestable Here-strings, block comments, and new APIs.
Of all these features, the one that really excites me is remoting, which is the ability to run commands (cmdlets) against remote computers. With it, you can run a script or command on another person's PC in PowerShell from your PC or server. It's like Remote Desktop at the command-line level.
A cool aspect of remoting is that it runs in a hidden window on the other person's PC, so they won't know you executed a command on their screen. (Well, tech-savvy users might notice your instance of PowerShell running in Task Manager.)
Another advantage to PowerShell remoting is the ability to fan out remote commands to run on multiple PCs. That lets you manage several PCs with one set of commands, saving you from repeating the work on each remote PC. There is nothing that makes an administrator's life easier than being able to reach out and touch other computers remotely.