One of the saddest things about working with computers is how quickly they become obsolete. If you happen to work for a company that has a lot of old hardware but needs to run the latest software, it may make more sense to install a Terminal Server rather than fight the battle of endless upgrades. In this Daily Drill Down, I’ll introduce you to the capabilities of Windows 2000 Terminal Services and explain how to set up Terminal Services on your own network.

What is Terminal Services?
Terminal Services is a Windows 2000 component that allows your Windows 2000 server to act as a terminal host. To understand what this means, consider how a mainframe works. In a mainframe environment, all of the users work from dumb terminals. The dumb terminals have absolutely no processing power of their own. Instead, the mainframe maintains a separate session for each user. The programs that the users run actually execute on the mainframe. The mainframe then sends screen updates to the dumb terminals. When users input information from their terminals, the information is passed back to the mainframe for processing.

For those of us who’ve never had the “pleasure” of working in a mainframe environment, another example of how Terminal Services works is similar to PCAnywhere. As you may know, PCAnywhere is a remote control program that’s typically run on workstations. One PC runs the host program while another PC runs the client program. The client dials in to the host and can then see the host’s desktop. It’s actually possible for the client to run programs on the host by remote control. The cool thing is that because the programs are running on the host, and the client is simply acting as a viewer, it’s possible to run programs that aren’t installed on the client or that the client is incapable of running.

This is how Terminal Services works. All of the applications run on the server. The client’s machine simply acts as a viewer and provides an interface for interacting with the programs that are running on the server. This means that because the programs are actually running on the server, it’s possible for the client to use applications that it would normally be incapable of running.

For example, in Figure A, you’ll see a photo of a palm top computer that normally runs Windows CE; now it’s running Windows 2000 Advanced Server. As you’re no doubt aware, it’s physically impossible to run Windows 2000 on a palm top. Palm tops simply don’t have enough memory, they don’t have a hard disk, and they use RISC processors instead of the normal Intel processors. However, through the magic of Terminal Services, here’s Windows 2000 Advanced Server running on a palm top.

Figure A
Through the magic of Terminal Services, I’m running Windows 2000 Advanced Server on a Windows CE machine.

Before you begin
As you can see, Terminal Services is a powerful tool. After all, any tool that can make Windows 2000 Advanced Server run on a Windows CE machine must have something going for it. Unfortunately, there are some negatives that you’ll have to overcome before you can use Terminal Services. The first of these negatives is that you must have sufficient bandwidth available before you’ll be able to run Terminal Services effectively.

Terminal Services consumes an enormous amount of bandwidth. The reason is that when a client connects to a Terminal Server, every screen update must be passed to the client. This means that if the client’s user so much as moves the mouse, then the client must send data to the server regarding the mouse movement. The server must then pass data back to the client to update the screen to reflect the mouse’s new position.

If you dial in to a Terminal Server through a 56Kbps modem, you can actually watch the screen updates be drawn on the screen as the client receives the necessary data from Terminal Server. Accessing a Terminal Server through a modem doesn’t work very well at all unless you’re accessing a purely text-based application. Terminal Services works well through a network, but a client accessing a Terminal Server can generate a lot of network traffic.

The other downside to Terminal Services is that it requires an enormous amount of power from the server that you’re using to run Terminal Services on. There’s a certain amount of overhead required for simply running Windows 2000, and Terminal Services requires system resources beyond those required by Windows 2000. Finally, you’ve got to remember that the Terminal Server is actually running all of the client applications on the server. If you have more than one or two users using Terminal Services, this can place a huge burden on your system’s memory and processing power. If your users are working with high-demand applications, it’s possible for a few users to slow a Terminal Server to a grinding halt.

Because of this, you’ve got to make sure that your system has sufficient resources to run Terminal Services and to support terminal clients. Microsoft recommends using a minimum of 128 MB of memory in your server. The minimum 128 MB is suitable for situations in which Terminal Services will only be used by the administrator to occasionally check up on the server. Don’t even think about only having 128 MB of memory in a production server. If you’ll have end users accessing Terminal Server to run applications, then you’ll need an extra 10 MB to 21 MB of memory per user. The variation in recommended memory is due to the fact that some applications that the users might be using require more overhead than others.

Keep in mind, though, that having clients using Terminal Services also consumes hard disk space and processor time. If you’re going to have multiple clients accessing your Terminal Server, then having multiple processors is almost a must. The more clients you have using your Terminal Server, the more processors you should use.

I mentioned that the hard disks are also an issue. While having enough available disk space is always an issue, it’s also important to make sure that your hard disk is fast enough. Remember that you’ll have multiple clients writing multiple files to the hard disk simultaneously. Therefore, I recommend using a RAID 5 or a RAID 10 array for optimum speed and fault tolerance.

Installing Terminal Services
The process of installing Terminal Services is fairly easy. Begin by opening the server’s Control Panel and double-clicking on the Add/Remove Programs icon. When the Add/Remove Programs dialog box appears, click the Add/Remove Windows Components button. Windows 2000 will launch the Windows Components Wizard.

Author’s note

When I performed this operation on my servers, several of the machines appeared to ignore me when I clicked the Windows Setup button. However, the Windows Setup Wizard had opened in the background, and I was able to access the wizard by simply closing the Add/Remove Programs dialog box.

When the wizard starts, you’ll see a long list of optional Windows 2000 components. Scroll through the list until you find Terminal Services. Select the check box next to it and the check box next to Terminal Services Licensing. Click the Next button to begin installing the necessary terminal service components.

At this point, the wizard will ask you if you want to install Terminal Services in Remote Administration Mode or in Application Server Mode. The option that you’ll use depends on whether you’ll allow end users to use Terminal Services. If end users will be using Terminal Services, then select the Application Server Mode option. If you’ll only be using Terminal Services for administrative purposes, select the Remote Administration Mode option.

Next, the wizard will ask you a few questions regarding the location of the license server. Unless you have a compelling reason to change these values, I recommend using the defaults. When you’ve completed this section, click Next. Windows 2000 will now ask you to insert your Windows 2000 installation media. After copying a few files, the wizard will tell you that Terminal Services has been installed and will ask you to reboot your server.

Configuring Terminal Services
Configuring Terminal Services is also a simple process. The first time I ever set up a Terminal Server, I was expecting the configuration process to be fairly involved. I thought I would have to set up a lot of special permissions, such as those that you have to configure when setting up a remote access server. However, you don’t have to do any of this.

Remember that Terminal Server Client is basically a window to a normal networking session. Therefore, when a client logs on through a terminal server client, Windows treats the login as if the user had logged in from any normal PC. The user simply enters his or her login name and password and is authenticated into the server where he or she can access a normal Windows desktop. In Figure B, you can see a sample terminal server session running on my Windows CE device. Aside from the limited resolution of the device’s display panel, a Terminal Server session looks like any other login since my roaming profile is still used as if I were doing a normal login.

Figure B
From a client’s standpoint, a Terminal Server session is identical to a normal network login.

Obviously, in the world of computers, nothing happens by magic. There is a slight amount of configuration involved. First, both the server and the clients must be running TCP/IP for Terminal Services to work. The administrator also needs to install Terminal Server Client on the client PCs. Terminal Server Client is a very small application that’s used as the platform for viewing the remote session. Configuring Terminal Server Client is as simple as entering the NetBIOS name or IP address of Terminal Server. You’ll find the Terminal Server Client in the \System32\Clients\Tsclient directory on your Windows 2000 server.

In this Daily Drill Down, I explained that in some environments, it may make more sense to install a Terminal Server than to constantly upgrade all of your workstations. I then went on to explain how to install and configure Terminal Services on your server.