Chapter 20. Sessions: remote control with less work

In chapter 13, we introduced you to PowerShell’s remoting features. In that chapter, you used two primary cmdlets—Invoke-Command and Enter-PSSession—to access both one-to-many and one-to-one remote control. Those two cmdlets work by creating a new remoting connection, doing whatever work you specify, and then closing that connection.

There’s nothing wrong with that approach, but it can be tiring to have to continually specify computer names, credentials, alternative port numbers, and so on. In this chapter, you’ll look at an easier, more reusable way to tackle remoting. You’ll also learn about a third way to use remoting that also comes in handy.

20.1. Making PowerShell remoting a bit easier

Anytime you need to connect to a remote computer, using either Invoke-Command or Enter-PSSession, you have to at least specify the computer’s name (or names, if you’re invoking a command on multiple computers). Depending on your environment, you may also have to specify alternative credentials, which means being prompted for a password. You might also need to specify alternative ports or authentication mechanisms, depending upon how your organization has configured remoting.

None of that is difficult to specify, but it can be tedious to have to repeat the process again and again. Fortunately, we know of a better way: reusable sessions.

20.2. Creating and using reusable sessions

20.3. Using sessions with Enter-PSSession

20.4. Using sessions with Invoke-Command

20.5. Implicit remoting: importing a session

20.6. Using disconnected sessions

20.7. Lab

20.8. Further exploration

20.9. Lab answers