SolutionBase: Implementing Terminal Services on Windows Server 2003

Terminal Services can add power and flexibility to the task of providing applications to your users, but it takes some planning before installation. Here's what you'll need to know.

Terminal Services under Windows Server 2003 has undergone some major improvements and, like many Windows services, has been more deeply integrated into the everyday operations of the OS. Even some of the common support features, such as remote assistance, use significant portions of the Terminal Services code to perform functions. For services such as remote assistance, you don't need to install Terminal Services separately. However, to be able to use Terminal Services clients out on your network, you'll need to install the full Terminal Services package that comes with Windows Server 2003. Of course, you'll also have to make sure your Windows Server licensing is accurate. Terminal Services licensing can make your head spin, especially considering that Microsoft changes the rules from time to time.

The planning stage

Before jumping into Terminal Services installation, you'll want to take the appropriate steps to ensure that your deployment is successful. Probably the two most important aspects of a Terminal Services deployment are proper server sizing for your environment and untangling the convoluted licensing issues surrounding these services.

Server sizing

Server sizing isn't always an exact science. For "normal" servers such as domain controllers, file and print servers, and general application servers, a lot of administrators can fairly inexpensively oversize the box to guarantee that it serves for the long haul. Of course, oversizing one of these servers might mean adding some extra RAM, a single additional processor, or a little disk space—not exactly rocket science.

Terminal Services servers require special consideration, particularly for deployments that will scale beyond 20 to 30 users or for serving applications that are processor-intensive. Terminal Services implementations can quickly max out even today's most powerful 2- and 4-way commodity servers. As a result, and in order to provide your environment with some measure of protection in the form of redundancy, most Terminal Services deployments use multiple servers.

If you've worked at all with Terminal Services in Windows 2000 and done any server-sizing scenarios, throw them away! Microsoft has made significant improvements to Terminal Services that result in a potential of up to 80 percent more users per Terminal Services server on newer hardware. In fact, according to Microsoft, a 4-processor Xeon server with 4 GB of RAM can support up to 520 data entry workers. This seems like a really high number for most offices, but is conceivable for true data-entry-only applications. Microsoft indicates that this configuration would support a maximum of only 270 knowledge worker users who have more intensive processing requirements, such as word processing tasks. In Microsoft's tests, the servers and applications were highly optimized to the point of disabling Word's background grammar and spell checker in order to conserve server resources.

When sizing your Terminal Services servers, the distinctions between your users are critical, as you can see from the data above. Knowledge workers in Microsoft's examples work to sustain the organization's decision support processes, while data entry workers do exactly what it sounds like they do. Other types of workers who require highly specialized processor- and resource-intensive applications are not suitable for Terminal Services.

To assist you in properly sizing your Terminal Services server, Microsoft provides the Terminal Services Scalability Planning Tools available as a part of the Windows Server 2003 Resource Kit utilities. You can download the tools from Microsoft's Web site.

In general, Microsoft recommends at least 128 MB of base RAM on the server, plus about 10 MB per concurrent user (4 MB for data entry users). For processing power, buy as much as your budget allows—within reason, of course. The RAM recommendations depend completely on the applications you intend to deploy. If you have an application that requires more RAM, you may not be able to support as many users on a single server. Use performance monitor and the planning utilities to figure out how much RAM you need.

Terminal Services licensing

Since Microsoft changes the licensing terms every so often, this is one area that might be outdated by the time you read this article. Every device that connects to a Terminal Services server needs a Terminal Services client access license. A key difference between Windows 2000 Terminal Services and Windows Server 2003 Terminal Services lies in the inclusion of a usable Terminal Services Client Access License (CAL) bundled with the client operating system.

Windows 2000 and Windows XP clients include a Windows 2000 Terminal Services CAL. Unfortunately, this CAL does not extend to Windows Server 2003 Terminal Services. This means that, even for Windows 2000 and Windows XP clients, you need to purchase TS CALs for Windows Server 2003 Terminal Services; these were included in Windows 2000 Terminal Services. This can add a major licensing expense to your Terminal Services implementation under Windows Server 2003, one that you wouldn't have incurred under Windows 2000.

Now for the exception: If you purchased Windows XP clients through retail or OEM channels before April 24, 2003, you can receive free Windows Server 2003 Terminal Services CAL tokens from Microsoft by visiting its transition page. You'll need the XP product key and proof of purchase to get these licenses.

Windows Server 2003 supports three basic types of licensing:

  • Device CAL: A per device license. This includes any device, computer, handheld, etc., that connects to the terminal server. This cannot be mixed with user CALs.
  • User CAL: A per-user license. A user can log in from as many different devices as he or she wants, under a single license. This cannot be mixed with device CALs.
  • External connector: A connector license to allow external users to make use of your terminal server.

Every machine connecting to the terminal server needs a Windows Server CAL in addition to a Terminal Services CAL. Here's a list of the various components you need to make sure your Terminal Services infrastructure is properly licensed:

  • A Windows Server license for each Terminal Services server
  • Windows Server CALs for every device that will connect to the Terminal Services server
  • A Terminal Services CAL (either device- or user-based) for each device or user that will use the services

If you plan to run Citrix on top of Terminal Services, licensing gets even messier. At that point, make sure to include your licensing vendor in the discussion to make 100 percent sure you're getting what you think you're getting! Every Terminal Services installation requires the inclusion of a licensing server that handles the distribution of tokens that provide access to Terminal Services.

Terminal Services installation

Don't install Terminal Services on a domain controller. You need as much available horsepower as possible for Terminal Services, and running it on a domain controller can result in fewer resources available to your clients.

Getting Terminal Services installed is pretty easy.

1. Go to Start | Manage Your Server.

2. Select Add Or Remove A Role from the Manage Your Server screen.

3. On the Preliminary Steps screen, click Next after verifying everything listed (Figure A).

4. Select Terminal Server from the list of available roles to add to the server (Figure B). Click Next.

Note that Terminal Services installation requires a server restart; so close open programs and make sure that users are disconnected before finishing the installation.

Figure A

A few things to check before you add a role to your server

Figure B

The Server Role screen asks you to select which role you'd like to add to your server.

Licensing server

At this point, the server restarts automatically. When you log back in to the machine, you're notified that this server now runs Terminal Services and that you need to activate a licensing server within 120 days. After 120 days, the terminal server will stop accepting unlicensed connections. Activating a licensing server involves first installing the Terminal Services licensing component and then activating the server with Microsoft. The server activation downloads a digital certificate from the Microsoft Clearinghouse that uniquely identifies this particular terminal server. To perform these steps, do the following:

1. Go to Start | Control Panel | Add Or Remove Programs.

2. Select Add/Remove Windows Components to start the Windows Components Wizard.

3. Select Terminal Server Licensing from the list of available components, and click Next.

4. Provide the location information for the licensing database (the default is C:\WINDOWS\System32\LServer) as well as the scope of the licensing server—either the entire forest or a single domain or workgroup (Figure C).

Figure C

The licensing server asks where to store its database as well as what the licensing scope is.

5. Go to Start | Administrative Tools | Terminal Services Licensing.

6. Find your new server in the list (Figure D).

Figure D

Locate your new Terminal Services installation.

7. Right-click the server and select Activate Server.

8. Select the activation method—automatic over the Internet, by telephone, or over the Web—and click Next (Figure E). An automatic registration is the default and requires a server capable of initiating SSL connections to the Microsoft Clearinghouse. If your server can't access the Internet, you won't be able to use this method.

Figure E

Choose your activation method.

9. You need to provide some information for the activation to proceed, including your name, company name, and country (Figure F). Click Next.

Figure F

Provide the required information.

10. If you like, you can provide more information, such as your address, e-mail address, etc., on the next page. After you do so, click Next.

License packs

After you've supplied the required information, you'll see a summary screen indicating that your server is activated by Microsoft. At this point, you have the option to add client licenses via a wizard. You can do this only if you've purchased Terminal Services client licensing packs from Microsoft. Each license pack includes some type of product key or agreement number that you must enter in order to install it.

To install licenses after the initial installation, access the Terminal Services Licensing utility, right-click the licensing server, and select Install Licenses. This will start the same wizard mentioned above. In order to be installed, client license packs require a product key or agreement number. For example, if you purchase a retail client license pack, it will include a 25-character product key that identifies it. On the other hand, if you install license packs as a part of a licensing agreement, such as an Open License agreement, you need to provide the agreement number and, depending on the agreement, an agreement authorization number. After this, follow the remaining steps in the wizard to finish installing the licenses.