Recent Posts

A look at the Terminal Services Manager in Windows Server 2008

Terminal Services Manager has been around for a while, but Microsoft made some changes to the utility in Windows Server 2008. Here's what you'll find.

Although Microsoft has made massive, welcome improvements to Terminal Services in Windows Server 2008, the Terminal Services Manager from older versions of Windows remains relatively stable.
Many other administrative applications have been added to handle specific aspects of Terminal Services administration. For example, the TS RemoteApp Manager and TS Web Access Administration programs are administrative applications that provide a management hook to many of Windows Server 2008’s enhanced Terminal Services capabilities.
In this column, I'll focus on the Terminal Services Manager.
The Terminal Services role in Windows Server 2008 allows remote access to the server by clients running the Terminal Services client (Remote Desktop Connection) on their computers. Effectively decoupling the computational resource (the server on which the Terminal Services role is installed) and the input/output (the client computer through the use of a software client), Terminal Services can help an organization significantly simplify its desktop computing efforts.
The Terminal Services Manager provides the interface through which Terminal Servers, client connections, users and processes are managed. Use Terminal Services Manager to manage the local Terminal Server, systems in trusted domains, or standalone servers. You'll see some of this in action in this column.
Running the Terminal Services Manager
Even without installing the Terminal Services role on your Windows Server 2008 computer, the Terminal Services Manager is installed by default. Remember that all Windows Servers have remote management capability built-in.
This functionality is provided by a subset of the overall Terminal Services role, but it does not need to be installed separately. (I'm assuming that you've already enabled remote administrative access to your Windows Server 2008 computer.)
You don't need to run the Terminal Services Manager from a server, though. If you're running Windows Vista SP1, Microsoft makes the Remote Server Administration Tools pack available in 32-bit and 64-bit varieties. To install the Administration Pack on Windows XP, you must have installed Service Pack 1 on the Windows Vista computer. For what we're talking about here, I'm running the Terminal Services Manager directly from a Windows Server 2008 computer.
To run the tool, go to Start | Administrative Tools | Terminal Services | Terminal Services Manager.
Terminal Services Manager overview
In addition to managing Terminal Servers, users, processes, and sessions, you can also connect to a specific session on the target Terminal Server. For example, suppose you've performed a few management tasks on a server, but now you need to leave an application running while you work on something else on a different server. You disconnect the session, which leaves the applications running. Later, you decide to check the status of the applications, so you connect to that session again.
In a way, this capability is like Fast User Switching in Windows XP, which enables you to log on with a different account without logging off from the current account. You can switch between sessions on any available Terminal Server. Terminal Services Manager also gives you the capability to remotely control another user's session, which makes it possible to monitor the user or provide assistance with software or other issues.
The Terminal Services Manager provides several other capabilities, as well. For example, you can use it to send messages to another user's session, log off a user, reset a session, view session-related counters, and end processes.
In Figure A, you see an image of the Terminal Services Manager in Windows Server 2008, which is broken into three distinct panes. The left-hand pane provides a navigation area that allows you to choose the server you'd like to manager. In the middle of the screen is the work pane, which shows information based upon your selection in the navigation pane. At the right-hand side of the screen is the Actions pane, which is now present in all of Microsoft's new management tools.
Figure A

The Terminal Services Manager in Windows Server 2008 (Click the image to enlarge)
Earlier versions of the Terminal Services Manager did not make use of the Microsoft Management Console (MMC), but this has changed with Windows Server 2008.
Menu and toolbar
The Terminal Services Manager menu should be familiar territory to anyone who has used a typical MMC or standalone Windows Server management application.
There are four primary menu options available:
  • File: Gives you a place from which you can clean up MMC remnants.
  • Action: Lists several commands that are either enabled or dimmed according to the item selected in the navigation pane or details pane. You can also access most of these commands through an item's context menu (right-click), through the toolbar, or through the use of the Actions pane at the right side of the screen.
  • View: Allows you to make changes to the overall look of the console, including, for example, removing the Actions pane.
  • Help: This one is pretty self-explanatory.
Immediately underneath the menu bar are these six buttons:
  • Back: Go back to the previous screen.
  • Forward: After you've gone back, it gives you an easy way to retrace your steps to where you where.
  • Up One Level: Go up to the next level in the hierarchy.
  • Show/Hide Console Tree: Hide or show the left-hand navigation pane.
  • Help: Get help!
  • Show/Hide Actions Pane: Hide or show the right-hand Actions pane.
I'll focus on the middle of the screen--the work pane--in the following sections. Note that there are three tabs in the Work pane: Users, Sessions, and Processes.
Users tab
The Users tab is shown in Figure A and includes the following columns:
  • Server: Lists the server on which session is running. This is handy if you're managing multiple servers with the Terminal Services Manager.
  • User: Shows the user who is logged onto a session.
  • Session: Shows you the session names. A session labeled Console is the system console session, or the session to which you would log on locally to the target computer. A session that starts with RDP indicates that a user is using the Remote Desktop Protocol to connect to the server.
  • ID: Shows the numeric ID of the session. The Console session is always session 1.
  • State: Shows the session's state. (Later in the article, I discuss the different states.)
  • Idle Time: Shows how long (in minutes) has passed without keyboard or mouse input to the session.
  • Logon Time: Shows the time the user logged on to the session.
Sessions tab
The Sessions tab (Figure B) shows much of the same information as the Users tab but organizes the information by session and shows additional session-specific information.
Figure B

The Sessions tab in the Terminal Services Manager
The additional information shown on the Session tab includes the following:
  • Type: Displays the client type--local console, RDP, etc.
  • Client Name: Identifies the client computer from which the session was initiated.
  • Comment: Shows an optional comment for the session.
Processes tab
The Processes tab (Figure C) shows all processes running on the selected server or on all servers if you choose the Terminal Services Manager option in the navigation pane.
Figure C

The Processes tab in the Terminal Services Manager
The Processes tab includes some of the same information as other tabs, with the following additional columns:
  • PID: Displays the process ID (PID) of the specified process. The PID uniquely identifies the process on a per-server basis; that is, PIDs are unique only on the server on which they run. The same PID might be used on multiple servers.
  • Image: Shows the executable program that created the process.
Viewing all processes on the server can be confusing when you're trying to identify the processes running in a particular session, and the problem only gets worse when you're watching multiple servers. To make things a little easier, select a single server in the navigation pane and then choose the Processes tab.
In earlier versions of the Terminal Services Manager, you could view just the processes associated with a particular connection; now, you need to scroll through the list of processes and match the information in the Session column with the same column on the Sessions tab.
Session status
If you've ever wondered how much data is being transferred over a particular session, you can use the session status feature to find out. To do so, select a session from the work pane session tab and, in the Actions pane, choose Status. Alternatively, you can right-click a session on the Sessions tab and, from the shortcut menu, choose Status.
The Terminal Services Manager displays the Status dialog box (Figure D), which shows network I/O information about the session, as well as a slew of other information, including the encryption level being used, the chosen color depth, and the screen resolution in use on the client. You can also force a status refresh by clicking the Refresh Now button. The default session status refresh period is one second. This screen is much more informative than the status information provided in earlier versions of this utility.
Figure D

Statistics related to an individual session
Session states
A given session can be in one of several states, and the State column in the various tabs lists each session's state. These are the possible states and what they indicate:
  • Active: This indicates that the session is connected, and a user is logged on to the server.
  • Connected: In the Connected state, the session is connected but no user is logged on to the server.
  • ConnectQuery: This indicates that the session is in the process of connecting. If this state persists, there is likely a problem with the session or connection.
  • Shadow: The session is being remotely controlled through another session. This is common in help desk scenarios.
  • RemoteControl: The target session is remotely controlling another session.
  • Listen: When a session is in the Listen state, it is ready to accept connections.
  • Disconnected: The user has disconnected from the session, but the session is still active and can be reconnected.
  • Idle: The session is ready to accept connections.
  • Down: The session could not be initialized or terminated.
  • Init: The session is initializing.
Common tasks
Here's a list of common tasks you can accomplish with the Terminal Services Manager, along with explanations about how to accomplish the tasks:
  • Connect to a server (add server to group): Right-click Terminal Services Manager or group and choose Connect To Computer. Locate or specify the server and click OK.
  • Disconnect from a specific server: Right-click the server and choose Disconnect.
  • Remove all servers from a management group: Right-click the group and choose Empty Group.
  • View users connected to a server: Click the server and click the Users tab.
  • View sessions on a server: Click the server and click the Sessions tab.
  • View processes on a server: Click the server and click the Processes tab.
  • View all users, sessions, or processes for all servers: Click Terminal Services Manager and click the Users, Sessions, or Processes tab.
  • Send a message to a session: Click the session and then click the Send Message Actions pane.
  • Remotely control a session: Click the session and then click the Remote Control Actions pane.
  • Log off a user: Click the Users tab, click the user, and click Log Off in the Actions pane.
  • End a process: Click the process on the Processes tab and then click End Process on the Action pane.
  • View network statistics and client information: Right-click a session and choose Status.