Shadowing a User Session
Before you try to shadow a session, there are two things to keep in mind. First, you can shadow a session only from another RDP session because you're basically intercepting the graphics output of the shadowed session and sending it to your own session. You can't send RDP updates to a local logon, just as you can't connect to an RDP session from a local logon. (You'll see this when you start the Remote Desktop Services Manager from the console session; there's a warning that these tools will be disabled.)
Somewhat more insidiously, you can't shadow all remote sessions. To be precise, you can only shadow sessions connecting to a full desktop using a single monitor. It will appear that you can shadow other sessions, because nothing in the user interface prevents you from connecting to a session hosting RemoteApp programs, and you won't see any warnings. However, shadowing RemoteApp programs isn't supported and really doesn't work well. The problem is that enabling RemoteApp programs requires detailed communication between server and client to position the window correctly. This communication doesn't extend to both the computer from which the administrator is shadowing the session and the original client. If the administrator shadowing the session moves the application window, it might disappear from the session when the administrator restores control, or it might just render the application un-responsive. Therefore, although it is technically possible to shadow a RemoteApp session, it's pretty useless. Before shadowing, be sure that you're connecting to a full desktop session.
NOTE: Neither the Remote Desktop Services Manager nor the command-line tools make it easy to distinguish between full desktops and RemoteApp sessions. To learn how to distinguish between sessions running RemoteApp programs and those running a full desktop, see the section entitled "Differentiating RemoteApp Sessions from Full Desktop Sessions" later in this tutorial.
Shadowing a session is simple, and you can do it from the Remote Desktop Services Manager or from a command prompt.
To shadow from the GUI, create an RDP connection to a server or desktop and run the Remote Desktop Services Manager. On the Users tab in the middle pane, right-click the user whose session you want to shadow and select Remote Control. If the user's permission is required, the user will receive a remote control request and can accept or deny it.
On the server, you will see a dialog box asking you to specify a key sequence to end the shadow session. Ctrl+Tab is the default choice, but you can choose other options if the default doesn't work for you.
Your screen might freeze briefly while the user is alerted to your shadow request if shadowing is configured to notify the user (and the user's screen might blink once when you connect).
After the user grants you permission to shadow the session, your session will be replaced with the user's session desktop. If settings only permit you to view the session, then you will be able to see the user's actions, but you won't be able to interact with the session. Otherwise, you can take part in the session as if you were the user. To stop shadowing, simply press the hot key sequence that you selected when establishing the session; the shadow session will disappear and you will be back to your desktop. The user's session will continue as normal.
You can also start a shadow session from the command line. Again, you'll need to establish an RDP session first and run the command from it. To get remote control of a session from the command line, use the shadow command and provide the name of the session ID to which you want to connect. To shadow a session on a remote computer, add the name of the server, as in this example of shadowing session 2 on server FLAPJACK.
shadow /SERVER:flapjack 2
When you start a shadow session from the command line, there is no prompt for you to choose a hot key sequence to end the shadow session. To end the shadow session, use the hot key sequence Ctrl+*.
NOTE: The asterisk above the number 8 does not work to stop shadowing. Use the asterisk on your numeric keypad.
In this tutorial:
- Managing Remote Desktop Session
- Introducing RD Session Host Management Tools
- Command-Line Tools
- Connecting Remotely to Servers for Administrative Purposes
- Managing RD Session Host Servers from Windows 7
- Organizing Servers and VMs in the Remote Desktop Services Manager
- Monitoring and Terminating Processes
- Terminating Applications
- Monitoring and Ending User Sessions
- Closing Orphaned Sessions
- Disconnecting Sessions
- Providing Help with Remote Control
- Enabling Remote Control via Group Policy
- Enabling Remote Control via RD Session Host Configuration
- Shadowing a User Session
- Troubleshooting Session Shadowing
- Preparing for Server Maintenance
- Sending Messages to Users
- Shutting Down and Restarting RD Session Host Servers
- Applying RDS Management Tools
- Get the Server Names
- List Processes on the RD Session Host Servers
- Auditing User Logons
- Closing Unresponsive Applications