This is the continuation of Part 1 of my PowerShell 3.0 overview. Today I will discuss Workflow, Web Access, remoting, robust sessions, and delegated administration.
PowerShell Workflow allows you to execute long-running tasks across multiple computers. It is a scripting construct that PowerShell translates to Windows Workflow Foundation (WWF). WWF takes care of the rest. It is a higher-level orchestrated execution, not another way to script.
Advantages of Workflow are as follows:
- Execution of the program is well defined, with proper data flow for input and output.
- Workflow provides flexibility for running sequenced, parallel, and long-running tasks.
- Long-running tasks can be executed on multiple computers and can be managed and monitored remotely.
- You can use checkpoints in the workflow. If the script fails, the script can be executed from the checkpoint rather than from the beginning.
- You can connect to and disconnect from the Workflow and continue if the system is rebooted.
- Throttling options offer high availability.
PowerShell Web Access and remoting
PowerShell Web Access and remoting are two features that enable you to run and manage scripts remotely.
PowerShell remoting is a cool feature that allows you to connect to remote machines to run commands and scripts and to import modules. You can manage any computer without RDPing into it. PowerShell remoting was introduced in PowerShell 2.0 and has been improved in PowerShell 3.0. Remoting can be done one to one, one to many, and even many to one. The screenshot below shows how to enable remoting and connect to a remote computer. You can see that the prompt (marked in yellow) has changed to the remote computer.
Enabling remoting and connecting to the remote machine
Robust sessions go hand in hand with PowerShell remoting. This feature is comparable to a Remote Desktop (RDP) session where you can connect to perform some tasks, disconnect, and then reconnect to continue with your previous tasks. You can reconnect from the same computer or connect from a different machine without interrupting the running tasks.
This feature allows you to provide credentials at the command line. This is useful for performing security critical jobs.
Windows PowerShell 3.0 is delivered with Windows Server 2012 and Windows 8. You can also install PowerShell 3.0 on Windows 7, Windows 2008 SP2, and Windows 2008 R2 SP1. As a prerequisite, you need to have Microsoft .NET 4.0 installed. You can get a copy of Windows PowerShell RC here. Happy PowerShell 3.0 scripting! J