Summary terminal services

Terminal services offers the ability to use thin clients. These thin clients will contact the terminal server on which all programs are installed. The following points could be benefits whe using terminal services :

bulletNo heavy (expensive) clients needed. (reduced hardware and electricity cost)
bulletCentral system- and application management. -> Lower TCO for maintenance.
bulletFaster application upgrades and deployments.
bulletBetter (less bandwidth) remote access options.
bulletIncreased security. (No local data on desk- or laptops)

Disadvantages could be :

bulletHigher initial deployment costs. (heavy servers, application research, etc.)
bulletLess multimedia options. (RDP protocol limitations to sound and screen updates)
bulletEvery application must be installed on a terminal server, even for one user.
bulletLimited personalization of desktop.

Terminal services modes

You can use terminal services in two ways :

bulletRemote administration mode. You can administer the server from any terminal client in the network. You cannot use this mode to run applications. 
bulletApplication server mode. Users can run applications on the server as if they are on their own desktop.

Terminal services components

The main components of terminal services are :

bulletTerminal services server. This server maintains the connections with the clients and runs all the applications. A terminal server requires at least 128 mb of memory and 10 to 20 MB extra memory for a connecting client.
bulletTerminal services client. This soft- or hardware connects to the terminal server.
bulletRemote desktop protocol. This protocol transfers the screen-, mouse- and keyboard data between the terminal service client and server. It only work over TCP/IP, not over IPX/SPX or NetBEUI.

Licensing

The following types of licenses could be needed when using a terminal server in application mode :

bulletWindows 2000 server license
bulletWindows 2000 server client access license  or BackOffice 2000 client access license. This license is needed for all clients (terminal service or not) who access file-, print- and other network services on a Windows 2000 server.
bulletWindows 2000 terminal service client access license or Windows 2000/XP Professional license. A Windows 2000 terminal service client license gives the right to connect to a terminal server. This licenses is included in a Windows 2000 Professional and Windows XP Professional license. This license is needed per device, not per concurrent user. It is needed for all Windows 9x, ME, and XP home computers and other non W2K/XP Professional devices.
bulletWindows 2000 terminal service internet connector license. This license allows 200 anonymous clients to connect from the internet to a terminal server.
bulletWork at home Windows 2000 terminal services client license.  Required when accessing the terminal server from home.

To handle licensing, a Terminal server licensing server must be installed within 90 days. (120 days in .NET server 2003).This service can be installed via Add/Remove Windows components. In a Windows 2000 domain it should be installed on a domain controller. You can install the license for the entire enterprise (Enterprise administrator membership required) or for the domain. (Domain administrator membership required) After installing the license service, it should be activated by Microsoft Clearinghouse. This can be done via www, email, phone or fax (Windows 2000) or via www or phone. (Windows .NET server 2003)

For more info see :

bullet Microsoft Windows 2000 Terminal Services Licensing white paper
bullet Licensing for Terminal Services in Windows 2000
bulletQ291807: Terminal Services Licensing for Windows 2000 Terminal Server
bullet Q244749: Licenses Required When Using Terminal Services Client Software
bullet Q237801: Windows 2000 Terminal Services Requires Licensing Service
bullet Q232520: Description of Terminal Services License Server Discovery
bullet Q287687: Terminal Services Licensing Enhancements
bullet Q294655: Terminal Services Licensing Enhancements Frequently Asked Questions
bullet Q248430: How to Transfer Terminal Services CAL from One Computer to Another
bullet Q237811: How to Activate a Terminal Services License Server and Install CALs Over the Internet
bulletQ306622: How to: Activate License Server with Terminal Server Licensing
bullet Q239107: Establishing Preferred Windows 2000 Terminal Services License Server
bullet Q201371: How to Reset the License Information in Terminal Server License Manager
bulletQ317592: How to: Use Terminal Services Licensing Reporter (Lsreport.exe)
bulletQ270898: Permissions for Terminal Server Enterprise License Server
bulletQ263315: How to Run Terminal Services Licensing from Another Computer
bullet Q272235: Internet Connector License Types for Windows 2000

Remote administration mode

When the terminal server is installed in remote administration mode, two concurrent licenses are automatically available to remotely administrate the server. When using Windows .NET server 2003, installing terminal services for remote administration enables the Remote control option on the Remote tab of the system. This gives administrators and members of the Remote desktop user group rights to remotely connect to the server via RDP.

Application server mode

Each terminal server client must receive a license from a terminal server license server. This server can be installed via Add/Remove programs and must be available on the network within 90 days. You can use two types of license servers :

bulletEnterprise license server. This server can serve every terminal server in any Windows 2000 domain but it cannot serve workgroups or NT 4 domains.
bulletDomain license server. This license server must be installed on a domain controller on Windows 2000. In a workgroup or NT 4 it can be installed on member servers. A domain license server can serve any terminal server in the domain it is installed in.

Installing terminal services

Remote administration mode

bulletSelect Terminal Services via Add/Remove programs at the Windows components. (14.3 MB including client creation files)
bulletSelect Remote administration mode.
bulletRestart the machine.

This mode gives two concurrent sessions that can be used to connect to the server. You must be in the administrator group or domain administrators group (domain controller) to have this ability. For more info see :

bulletHow to: Configure Terminal Services for Remote Administration (300847)
bulletHow to: Install Terminal Services in Remote Administration mode (Q306624)
bullet Impact of Running Remote Administration on a Terminal Server (Q243213)
bullet Remote Administration of Terminal Services by Non-Administrators Accounts (Q253831)

Application server mode

Special issues are important when installing terminal services on a domain controller. (Q250776)

bulletSelect Terminal Services via Add/Remove programs at the Windows components. (14.3 MB including client creation files in Windows 2000)
bulletSelect Application server mode.
bulletSelect the default permissions mode (Windows 2000) :
bulletPermissions compatible with Windows 2000 users. This is the most secure environment. Users accessing the server via terminal services will have the Users-right so they cannot modify system files. The local User group containing the Interactive users and Authenticated users only has read permissions on the HKLM/Software key and other important parts of the registry and file system. This option may cause problems with legacy applications.
bulletPermissions compatible with Terminal Server 4.0 users. This option provides less security, users do have access to system files and critical parts of the registry. The Terminal server user group with the Interactive users and Authenticated users has read/write permissions on HKLM/Software key and other important parts of the registry and file system. It may be needed to run legacy applications.

This settings can be changed later by the Terminal services configuration mmc.
 
bulletSelect the default permissions mode (Windows .NET server 2003) :
bulletFull security. This is the most secure environment in which all security features of Windows .NET server 2003 are used. Users accessing the server via terminal services will have the Users-right so they cannot modify system files. This option may cause problems with legacy applications.
bulletRelaxed security. This option provides less security, users do have access to system files and critical parts of the registry. It may be needed to run legacy applications.

        This settings can be changed later by the Terminal services configuration mmc.

bulletYou will receive a warning the currently installed applications may not work via terminal services and that they probably must be reinstalled.
 
bulletRestart the machine.

For more information about installing terminal services, see :

bulletHow to: Install Terminal Services in Application Server mode (Q306626)
bullet Windows 2000 Terminal Services Toggle Functionality (Q222992)
bullet Toggling Terminal Services to Application Server Mode May Cause Programs Not to Work (Q252330).
bullet Determining the Mode of a Terminal Services Server (Q243212)
bullet Change Between Remote Administration and Application Server Mode (Q238162)
bulletWindows 2000 Terminal Services Unattended Setup Settings (Q230597)

Terminal server permissions

Before a user can logon to a Windows 2000 terminal server, it needs to following permissions :

bulletAllow logon to terminal server check box. This settings is set on the Terminal services profile-tab of the account of the user in Active Directory Users and Computers. This setting is on by default.
bulletLog on locally right. On the terminal server the user needs this right which can be set via the policy Computer configuration - Windows settings - Security settings - Local policies - User right assignment - (Allow) Log on locally. This settings is enabled by default on member servers where the Users group is add during the installation of terminal services. This is not done on a domain controller.
bulletRDP permissions. Via the Terminal services configuration utility the Users group gets the permission to use RDP by default. Security tab of properties of RDP protocol. (Windows 2000)
In Windows .NET server 2003, the local group Remote Desktop Users gives the members permissions to use RDP. By default this group is empty and should be filled with allowed terminal server users.

More info :

bulletHow to: Modify RDP Connection Permissions for Terminal Server (Q259129)

Terminal server management

User settings for terminal server are managed via the user account. You can specify various settings at the environment-, sessions-, remote control- and terminal services profile tab. These settings could be overwritten by settings specified for a specific terminal server via the terminal server configuration utility or group policies. To manage the terminal servers, the following tools can be used :

Terminal server connections mmc

This management console (tsmmc.msc) can be used to connect to various terminal servers. In Windows 2000 it is called Terminal Server Connections and only available via a download. In Windows 2003 server it is called Remote Desktops and available by default.

Group policies

If you put the terminal server is a special OU, you can use the loopback processing option to use group policy to customize the terminal server environment for the users. See Q231287, Q253672 and Q260370. In Windows .NET server 2003 you can also use group policies to administrate the terminal server settings of the servers that are available in the terminal server configuration utility. (Computer configuration\Administrative templates\Windows components\Terminal services)

Terminal server connection configuration

This management console (tscc.msc) is used to manage the Remote Desktop Protocol - Transmission Control Protocol (RDP-TCP) connections. Most of the settings can also be set at user or client level. When they are set on multuple levels, the settings on the server overrule the settings on the user or client level. Within Windows .NET server 2003, it is also possible to manage these settings via the group policies.

For each connection you can modify the following tabs :

General tab

bulletComment
bulletEncryption level.  Set the encryption level.
Windows 2000 : At the low level only data sent from the client to the server is encrypted with a 56-bit key. At the medium level (default) the communication is in both ways encrypted with a 56-bit key. At the high level, communication in both ways is encrypted with a 128-bit key. For encryption RSA RC4 is used.
Windows server 2003 : Low (56-bit), client compatible (default 128-bit), high (128-bit) and FIPS compliant (Triple DES encryption algorithm for the TLS traffic encryption, RSA public key algorithm for the TLS key exchange and authentication, and SHA-1 hashing algorithm for the TLS hashing requirements)
bulletUse standard Windows authentication. Select this option if another authentication mechanism is installed and you still want to use Windows authentication.

Logon settings tab

bulletUse client provided logon information or always use the following logon information. Let the client provide a user-id and password or use a default one. By default the client should provide a user-id and password.
bulletAlways prompt for password. (default on in W2k, off in Windows 2003)

Sessions tab

bulletOverride user settings. You can override the user settings about when to end a disconnected session, the active session limit and the idle session limit. You can also set if you want to disconnect the session or to end it. Finally you can set if you allow reconnection from any client or from the previous client.

Environment tab

bulletOverride settings from user profile and client connection manager wizard. Define a specific program to run when the user logs on.
bulletDisable wallpaper. (default on, not available in Windows server 2003)

Remote control tab

Set the remote control option to one of the following options ;

bulletUse remote control with default user settings. Uses the settings as specified in the user's account. (Default option)
bulletDo not allow remote control
bulletUse remote control with the following settings. You can set to require the user's permission and the level of control. (view or interact)

Client settings tab

bulletConnection. Set if the settings specified in the user's account should be used about the re-connection of client drives, client printers and the main client printer.
bulletDisable the following. Set which kind of mapping are not allowed during a session :
bulletDrive mapping. (Windows 2003 server only)
bulletWindows printer mapping. (default off)
bulletLPT port mapping. (default off in W2K, on in Windows 2003 server)
bulletCom port mapping. (default on in W2K, off in Windows 2003 server)
bulletClipboard mapping. (default off)
bulletAudio mapping. (Windows 2003 server only)
bulletLimit maximum color depth. (Windows 2003 server only, default 16-bit)

Network adapter tab

Set for each network adapter, or for all, the maximum number of connections. (default unlimited)

Permissions tab

At this tab you can set the following types of permissions for users or groups (Q243554) :

bulletQuery information. Query for information about sessions or servers.
bulletSet information. Configure RDP settings and permissions.
bulletReset. End sessions. (Not available in Windows server 2003)
bulletRemote control. View of interact with other sessions.
bulletLogon. Logon to a terminal server session.
bulletLogoff. Log an other user off from a session.
bulletMessage. Send a message to another session via the terminal server manager or msg command. 
bulletConnect. Alllows a user to reconnect to a session.
bulletDisconnect. Disconnect another session.
bulletVirtual channels. Allows the client to establish additional virtual channels to the server.

By default the following permissions are set :

bulletAdministrators -> Full control.
bulletSystem -> Full control.
bulletUsers -> Query information, logon, message, connect. Windows server 2003 does not use the Users group but the group Remote Desktop users.
bulletLocal service -> Special permissions. (Windows server 2003 only, query information and message)
bulletNetwork service -> Special permissions. (Windows server 2003 only, query information and message)

Standard permissions are :

bulletFull control -> All permissions.
bulletUser access -> Query information-, logon-, message- and connect permissions.
bulletGuest access -> Logon permission.

For a server you can modify the following settings :

bulletTerminal server mode. Shows if the server runs in remote administration mode or in application server mode . Use control panel, Add/Remove programs to change the mode.
bulletDelete temporary folders on exit. (Default on)
bulletUse temporary folder per session. Set if temporary folder should be created for each session. (Default on) See (Q272464) and (Q243555).
bulletInternet connector licensing. Allows anonymous users to connect via the internet. (default disabled, only available on W2K) Requires a licensing server.
bulletLicensing. Licensing per device (default) or per user. Windows server 2003 only)
bulletActive desktop. (Default enabled in W2K, off in Windows 2003 server)
bulletPermission compatibility. Sets the permission compatibility to Windows 2000 users or Terminal server 4.0 users in W2k or Full security or Relaxed security in Windows server 2003. (default based on installation settings)
bulletRestrict each user to one session. Default on. Windows server 2003 only.
bulletSession directory. Default off. Windows server 2003 only. See Session Directory and Load Balancing Using Terminal Server.

Terminal services manager

This tools is not an management console but tsadmin.exe When selecting the domain you will see three tabs with information :

bulletUsers tab. Shows all connected users. (server, user, session, session id, state, idle time and logon time) You can logoff a user at this tab. (Full control required)
bulletSessions. Shows all sessions. (server, session, user, session id, state, type, idle time, logon time, comment) For each session you can do the following things :
bulletConnect. Connect to the session from another session. Connect cannot be used from the console, (Full control or user access required)
bulletDisconnect. Disconnect the session. The session is saved and applications keep running. (Full control required)
bulletSend message. Send a message to the user. (Full control or user access required)
bulletRemote control. Remote control a session. Cannot be used from a console but must be started from within a terminal server session. Remote control can also be started with the 'shadow' command. (Full control required) See Q232792.
bulletReset. Reset the session. All data is lost. (Full control required) See Q320192.
bulletStatus. Display information about the session. (Full control or user access required)
bulletProcess. Shows all processes. (server, user, session, session id, process id, image) You can end each process.

When you select a specific session you can view all processes on the processes tab and get all kinds of information about the connection on the information tab.

Terminal server licensing

See Licensing.

Command line tools

bulletChange logon. Enables or disables logons. (Q186504)
bulletChange port. Change port mappings. (Q186504 and Q320184)
bulletChange user. Switch between installation and execution mode. (Q186504)
bulletChange client. View and changed the redirected devices.
bulletCprofile. Remove user specific file associations from profile. (Q186509)
bulletDbgtrace. Enable or disable debugging mode.
bulletFlattemp. Enable or disable flat temporary directories. (Q186516)
bulletLogoff. Logoff a user/session.
bulletMsg. Send a message.
bulletQuery process. Displays information about a process. (Q186592)
bulletQuery user. Displays information about the users logged on. (Q186592)
bulletQuery termserver. Displays information about a terminal server. (Q186592)
bulletQuery session. Displays session information about a terminal server.
bulletRegister. Register a program so that it has special execution characteristics.
bulletReset session. Reset a terminal server session.
bulletShadow. Can be run on a terminal server to remote control a session.
bulletTscon. Connect to an existing terminal server session. (Q243202)
bulletTsdiscon. Disconnects a client from a terminal server session.  (Q243202)
bulletTskill. Kills a process.  (Q243202, Q320052)
bulletTsprof. Copies a user configuration and changes the profile path.
bulletTsshutdn. Shut down a terminal server. (Q320188 ,Q243202)
bulletRwinsta. Resets a session subsystem hardware and software to initial values. (Q243202)

Resource kit utilities

More info :

bulletUseful Terminal Services Resource Kit Utilities (Q240444)
bulletQ320189: How to: Use the Terminal Services Version Limiter tool
bulletQ317592: How to: Use Terminal Services Licensing Reporter (Lsreport.exe)
bulletQ320190: How to: Use Winsta to Monitor Terminal Services Client Sessions

Installing applications

If you want to install applications on a terminal server, use the Add/Remove programs option to change the server to install mode. This will arrange that ini-files and registry settings are available for each user. The ini-files will be stored in the user's home directory or, if not available, in the profile of the user. Registry settings are stored in hkey_current_user. The temporary files created by an application are stored into the userprofile temp\{session id} folder so each user has a separate temp folder. Also install applications on NTFS partitions so you can set permissions on them. Some applications also need a compatibility script that makes them available to run in a multi-user environment. These scripts are stored in \winnt\application compatibility scripts\install.

More info :

bulletInstalling and Using Programs on Windows 2000 Terminal Services (Q248340)
bulletHow to: Switch Terminal Services to Install Mode (Q320185)

Customizing users'' terminal server environment

Terminal server profile

A user can have its own terminal server profile defined via Active Directory Users and Computers. (Terminal services profile-tab) It is recommended to use one on a network share so that the profile is available, independent to which terminal server the user logs on. If no terminal server profile is specified, or it is unavailable, the normal windows profile is used. The tsprof.exe utility can be used to update the terminal server profile without using Active Directory Users and Computers.

Home folders

A user can have it's own terminal server home directory defined via Active Directory Users and Computers. (Terminal services profile-tab) This folder is used as a rootdrive to store the application compatibility files. (*.ini). If no terminal server home directory is specified, the home folder is used that is specified on the Profile-tab.

Group policies

If you put the terminal server is a special OU, you can use the loopback processing option to use group policy to customize the terminal server environment for the users. By activating the loopback option in the group policy of the OU the terminal server is in, the user settings of this OU are used to customize the user's environment.

For more info see :

bulletQ294751: Terminal Services Group Policy objects
bullet Q278295: How to Lock Down a Windows 2000 Terminal Server Session
bullet Q231287: Loopback Processing of Group Policy
bullet Q253672: Expected System and Group Policy Behavior with Windows 2000 Clients.

Scripts

When logging on to a terminal server the usrlogon.cmd script starts for the %systemroot%\system32 folder. This script activates the following scripts :

bulletSetpaths.cmd. Stored in %systemroot%\Application compatibility scripts folder and used to check the registry keys for the user environment.
bulletUsrlogn1.cmd. Only if available in the %systemroot%\system32 folder. If available it is used by application compatibility scripts.
bulletRootdrv.cmd. Stored in %systemroot%\Application compatibility scripts folder and used to create a homedrive via rootdrv2.cmd. (if available)
bulletUsrlogn2.cmd. Only if available in the %systemroot%\system32 folder. This script is used to create application directories in the root drive as specified in the application compatibility scripts. 

For more info see :

bullet Q195461: How to Set Up a Logon Script Only for Terminal Server Users

Application compatibility scripts

Older application could require application scripts. Microsoft provides some during the installation of terminal server. There are three kinds op compatibility scripts :

bulletInstall. Stored in %systemroot%\Application compatibility\Install folder. These scripts should be started after the application is installed. The scripts modify the usrlogn2.cmd file. They also use chkroot.cmd and rootdrv2.cmd to check if a root-drive is available.
bulletLogon. Stored in %systemroot%\Application compatibility\Install folder. These scripts are called from the userlogn2.cmd file to copy files and/or modify hkey_current_user registry entries.
bulletUnistall. Stored in %systemroot%\Application compatibility\Install folder. These scripts are called when the application is uninstalled. This to remove the modifications in usrlogn2.cmd.

More info :

bulletTerminal Services Compatibility Scripts Available (Q263458)

Ini file mapping

A copy of system.ini, win.ini and other .ini files in the system-root is made to the Windows folder of the profile of the user. This happens when the user tries to access the file. When the user logs on the system checks if the files are still up-to-date. If not, the updated files are copied to the profile of the user. When the user needs to access the ini-file, he's redirected to the files in the Windows folder of the profile instead of to the system-root folder

Registry mapping

When the terminal server is in install mode, it monitors every entry that is written to hkey_current_user. Each new entry is copied to HKLM\Software\Microsoft\WindowsNT\CurrentVersion\Terminal server\Install\Software. This method makes the registry keys available for all users in execute mode. If during execution mode a key cannot be found in hkey_current_user, the system looks in the HKLM\Software\Microsoft\WindowsNT\CurrentVersion\Terminal server\Install\Software key. This prevents problems with applications that don't use advertising to make the application available for all users.

Terminal server printing

A terminal server client can only print to local LPT printers or to network printers. In both situations, the printer driver must be installed on the terminal server. With the default security settings, this can only be done by administrators.

In a new situation, the terminal clients only sees the local LPT printers and not the printers installed on the Terminal server. (unless he has administrative priviliges) New network printers can be add by connecting to the printer)

The printer control panel can be started via the explorer with the command 'explorer /n,/root,::{2227a280-3aea-1069-a2de-08002b30309d}'

If you have multiple terminal servers you can specify on terminal server as the trusted source on which all printer drivers are installed by the administrator :

bulletShare the folder \%systemroot%\system32\spool\drivers\w32x86.
bulletCreate two values in the registry of the other terminal servers under HKLM\System\CurrentControlSet\Control\Print\Providors\LanMan Print Services\Servers.
bulletLoadTrustedDrivers    Reg_DWord     Value = 1
bulletTrustedDriverPath      REG_SZ           Value = unc path to share of driver on trusted source.
bulletDisable via the group policy the security option 'Prevent users from installing printer drivers' on the terminal servers. (except on the trusted source)

More info :

bullet Terminal services and printing whitepaper
bulletHow to Print to a Local Network Printer in Terminal Services (Q286047)
bulletHow to Add a Redirected Client Printer Using Terminal Services (Q243552)
bulletPrinter Redirection in Windows 2000 Terminal Services (Q294429)
bulletLocal Printer Added to Terminal Services Using RDP (Q238841)

Terminal server processes

On a terminal server termserv.exe instructs the session manager (smss.exe) to create the sessions. Each of the sessions contains a the following user mode processes :

bulletCSRSS.exe -> Client server runtime sub system.  1.5 MB in W2K, 2.6 MB in W2003.
bulletWinlogon.exe -> Windows logon service. 1.7 MB in W2K, 2.4 MB in W2003.
bulletExplorer.exe -> Explorer. 5 MB in W2K, 9 MB in W2003.
bulletRdpclip.exe -> Remote desktop protocol clipboard extension. 1 MB in W2K, 2.5 MB in W2003.
bulletCtfmon.exe -> Alternative user input text input processor. (optional)

In kernel mode it also creates a new win32k.sys process to handle the keyboard and mouse input and a display and printer driver. For more info see Inside Microsoft terminal server (Windows 2000 magazine) The WinObj tool of Sysinternals can be used monitor objects that are used.

Terminal service clients

You can connect to the Terminal services by using the RDP client that is offered in Windows XP and Windows 20003 server or is available by download. Another option is to use the Terminal server client as it is offered on the Terminal server. The terminal service clients are stored in the \winnt\system32\clients\tsclient\net folder. There is a folder for a 16-bit and a 32-bit client. These folders can be shared so that they can be installed on clients.
You can also use the Terminal services client creator console to create floppy disks of the installation files. The 16-bit client uses 4 disks, the 32-bit client 2 disks.

An MSI package of the terminal services client can be download at Microsoft. The version of mstsc.exe can be started with parameters :

bullet-v: [Server name or ip address]
bullet-f Enables full screen mode
bullet-h: [height] -w: [width] Can be used to specify the screen resolution.          

The client connection manager (conman.exe) can be used to configure a connection with a terminal server. You can enter the following settings :

bulletConnection name
bulletHost name or ip address terminal server
bulletLogon information to automatically logon
bulletScreen resolution
bulletData compressions
bulletCache bitmaps
bulletProgram to start automatically. (folder and program name as is on terminal server)
bulletIcon of the connection
bulletProgram group where the icon is created

In Windows server 2003, the client is installed from the \windows\system32\clients\tsclient\win32 folder. It installs the remote desktop connection manager (mstsc.exe) in which the following options can be configured :

bulletGeneral tab
bulletLogon settings -> Computer
bulletLogon settings -> User name
bulletLogon settings -> Password
bulletLogon settings -> Domain
bulletSave password
bulletSave or open connection as .rdp file.
bulletDisplay tab
bulletRemote desktop size (resolution)
bulletColors (high- and true color support)
bulletLocal resources tab
bulletRemote computer sound (bring to this computer, do not play, leave on server)
bulletKeyboard. Apply windows key combinations (in full screen only, on the local computer, on the remote computer)
bulletLocal devices. Connect to disk drives (default off), printers (default on), smartcards (default on) and/or serial ports. (default off). When a local printer is connected the driver must be available on the terminal server. If not, an event is logged on the client. Only printers attached to LPT and COM ports are supported, USB printers not.
bulletPrograms tab
bulletStart a program in a specified folder.
bulletExperience tab
bulletConnection speed for optimal performance. Choose modem (28.8 or 56.6), broadband, LAN or custom. This setting defines the settings for :
bulletDesktop background
bulletShow contents of window while dragging
bulletMenu and windows animation
bulletThemes
bulletDesktop caching
bulletReconnect if line is dropped. (default on)

Other clients could be :

bulletWindows CE or Pocket PC's.
bulletWindows based terminals. (WBT) For more info see www.thinplanet.com.
bullet Microsoft terminal services advanced client. Enables access to the terminal services from a web browser via an IIS server.
bulletPlatform independent Java based access software to terminal server from Hobsoft.

For more info see :

bulletQ306566: How to: Connect Clients to Terminal Services in Windows 2000
bullet Q232968: How to Automate Terminal Server Client Configuration
bullet Q255898: Terminal Services Client Command-Line Switches
bullet Q236573: HOW TO: Distribute Terminal Services Client Using Active Directory
bullet RDP client for Windows 9x and Windows 2000
bullet RDP clipboad file copy utility download

RDP protocol

Terminal services uses the Remote Desktop Protocol (RDP) to communicate between the terminal server client and the terminal server. The RDP protocol is based on the T.120 protocol and can only be used on TCP/IP. Windows 2000 uses RDP 5.0, Windows XP uses RDP 5.1 and Windows server 2003 uses RDP 5.1. The main new functions of RDP 5.1 are :

bulletSupport for 24-bit color. RDP 5.0 did support up to 256 colors.
bulletImproved performance over low speed connections.
bulletSmart card authentication.
bulletKeyboard hooking to direct Windows key combinations to the terminal server sessions.
bulletDrive redirection. Terminal server users can access their local disks. Was already available via a workaround with the drmapsrv.exe resource kit utility. (Q244725, Download here Drmapsrv.exe)
bulletSound redirection. Sound on the terminal server can be redirected to the client.
bulletPort redirection.
bulletLocal printer redirection improvements. This functions was already available in RDP 5.0.

For more info see :

bulletRemote Desktop Protocol (RDP) features and performance whitepaper
bullet Remote Desktop Protocol (TechNet)
bullet Understanding the Remote Desktop Protocol (RDP) (Q186607)
bullet Explanation of RDP-TCP Permissions in Windows 2000 (Q243554)

Tuning

Several options that should be concerned when tuning the Terminal services environment :

bulletUse Network Load Balancing with Client Affinity to create a high-availability environment.
bulletUse roaming terminal server profiles. Disable storage of local profiles via  Group policies.
bulletUse and tune NTFS. (Q150355,Q130694)
bulletUse home-folders.
bulletUse desktop policies like :
bulletRemove screen savers and bmp files.
bulletClean desktop or policy to redirect desktop.
bulletUse folder redirection for Start menu.
bulletDisble Windows updates.
bulletDisable control panel.
bulletDisable run command, command prompt and find/search.
bulletDisable shutdown button and add logoff button to Start menu.
bulletDisable auto play.
bulletDisable welcome screen.
bulletDisable access to local drives.
bulletDisable access to registry editors.
bulletDisable offline files.
bulletUse folder redirection to the home-folder of the user.
bulletAllow only specific applications to run. At least required are cmd.exe, cmstart.exe, explorer.exe, systray.exe, userinit.ini, usrlogon.cmd and updatdrv.exe. (Citrix only)
bulletSession time-outs.
bulletIncrease idle sessions.
bulletIncrease size event logs.
bulletIncrease the registry size. ((Q124594)
bulletDisable Dr. Watson. (Q188296)
bulletUse multiple network adapters.
bulletMinimize graphic usage on terminal server. (Q226931)
bulletOptimize performance for background services.
bulletStop the NT Executive from paging to disk when enough memory is available. (Q184419)

Shortcuts

If the Windows shortcuts are not used, you can use terminal server shortcuts :

bulletAlt+Home -> Display start menu.
bulletAlt+Ins -> Switches running tasks.
bulletAlt+pgUp/PgDn -> Alt-tab functionallity.
bulletCTRL+Alt+Break -> Switch a client between window and full screen.
bulletCTRL+Alt+End - >Shows the windows security screen.
bulletCTRL+Alt+Minus (num. keyboard) -> Make a print screen of the terminal server session.
bulletCTRL+Alt+Plus (num. keyboard) -> Make a print screen of the local and terminal server session.

For more shortcuts see the terminal services help file.

Internet access

RDP ports

By default RDP uses TCP port 3389. This port can be changed by using the \HKLM\System\CurrentControlSet\Control\TerminalServer\Wds\Rdpwd\Tds\Tcp\Portnumber key and rebooting the server. The change the client settings export, change and inport a .CNS file that contains the connection to the server.

TSAC

The Terminal Server Advanced Client can be used to make a terminal server available via an Internet Explorer web browser :

  1. Install Internet Information Services on the terminal server.
  2. Download the Terminal Server Advanced Client.

More information

Other white papers

bullet Technical overview of Windows Server 2003 terminal services
bulletUpgrading to Windows 2000 terminal services
bulletWindows 2000 terminal services an integrated, server-based computing solution
bulletWindows 2000 terminal services capacity and scaling
bulletTerminal services application compatibility notes
bullet Using the Application Compatibility toolkit
bullet Using software restriction policies to protect against unauthorized software
bulletOptimizing applications for Windows 2000 terminal services and Windows NT 4.0, terminal server edition
bulletTerminal server pros and cons (Swynk)
bulletThin down with Windows 2000 terminal server (ZDNet)

Links

bulletTerminal server links (Labmice)
bulletUse these tricks to connect to remote computers and you'll save time and money (ITworld)
bullet Metaframe XP: A guided tour (Windows 2000 magazine)
bulletRAS meets terminal services (Windows 2000 magazine jan 2001)
bulletKeeping up with terminal services (Windows 2000 magazine jan 2001)
bulletRemotely manage your Win2K servers (Windows 2000 magazine jan 2001)
bulletWin2K terminal server services and TSAC (Windows 2000 magazine dec 2000)
bulletIntroducing terminal server tools (Windows 2000 magazine aug 2000)
bulletMicrosoft enhances terminal services with TSAC (Windows 2000 magazine jul 2000)
bulletEvaluating Windows Terminals (Windows 2000 magazine apr 2000)
bulletWindows 2000 vs NT terminal server licensing (Windows 2000 magazine feb 2000)
bulletPublished ICA applications (Windows 2000 magazine feb 2000)
bulletTerminal services in NT 4.0 domains (Windows 2000 magazine)
bulletCalculating the cost of terminal services (EarthWeb)
bullet Gartner recommends targeting your thin client deployment (TechRepublic)
bullet Is thin client technology right for your business (TechRepublic)
bullet Extend your organization with Win2K terminal services (TechRepublic)
bullet When does Citrix provide value over Win2K terminal service ? (TechRepublic)
bullet Windows 2000 terminal services offers improved performance and functionallity (TechRepublic)
bullet Enhance performance with the terminal services config tool (TechRepublic)
bullet Using W2K terminal services (BrainBuzz)
bullet Citrix metaframe XP - Upgrade or ignore (TechRepublic)
bullet Web-enable W2K terminal services with TSAC (TechRepublic)
bullet Terminal server security (SecAdministrator)
bulletLicensing Microsoft Office in a terminal service environment (Microsoft)
bulletUsing Terminal Server with Windows Load Balancing service (Q243523)
bullet How to Change Terminal Server's Listening Port (Q187623)
bulletHow to: Copy and Paste Files between Terminal Server and Client (Q309825)
bulletHow to configure automatic logon to a Terminal Server (Q260711)
bulletHow Windows Terminal Server Uses Temporary Folders (Q272464)
bulletHow to configure Terminal Server Temporary Folders (Q243555)
bulletHow to: Use IPSec Policy to Secure Terminal Server Communication (Q315055)
bulletSecuring Terminal Server Communication Between Client and Server (Q232514)
bulletExamining the Terminal Server Key (Q243215)
bulletHow to Minimize Graphics Use with Terminal Server (Q226931)
bulletScalability of Terminal Services on Windows 2000-based Computers (Q277863)
bulletConsiderations of Terminal Services on a Server Cluster (Q294926)
bulletModifying Process Scheduling in Windows 2000 Terminal Services (Q243200)
bulletHow to: Turn Off Automatic CD-rom Playing in Terminal Services (Q320182)
bulletSecurity Concern with Share-level Security and Terminal Services (Q260853)
bulletHow to Use a Modem with Terminal Services (Q270857)
bulletTerminal Services Settings That Affect Remote Assistance (Q305898)
bulletThinplanet.com
bulletThinwizard.com

Third-party tools

bulletHotLink jwt 2.1 (Windows 2000 magazine jan 2001)
bulletHobsoft jwt 2.1

Last update : 19 February 2003