As you know, many applications—particularly (but not necessarily) older applications—are written for single-user environments. Such applications use machine-specific or IP address-specific settings rather than user-specific settings, so they don't work well when 30 people use the same application. However, applications designed for single-user environments aren’t the only problem. Some core features of the Windows NT OS—which form the basis of Windows 2000 Server Terminal Services and Windows NT Server 4.0, Terminal Server Edition (TSE)—depend on a single-SERVER environment (i.e., if you work at one workstation, Microsoft doesn't anticipate that you might want to have multiple copies of your user profile open on different servers). However, as I mentioned in a recent Windows 2000 Magazine article, if you use roaming profiles and server farms, you can encounter problems when saving per-user profile changes. Some readers asked what kinds of problems can arise, one citing a new project he was working on that might use roaming profiles with terminal services.

Here's the short version: If you run an application from server Alpha and another application from server Beta and make changes to your profile from both applications, only the changes you made to the version you save last take effect. That is, if you running Word on Alpha and Excel on Beta and disconnect from Excel last, you lose all the changes that you made in the Word session. (If you only have one terminal session, this problem won’t affect you.)

This problem isn’t unique to terminal services by any means—it’s just more likely to happen in that environment because you typically set up terminal servers in load-balanced server farms to improve responsiveness. Users with client-centric applications might occasionally log on to more than one workstation at a time (e.g., if you’re logged in at your desk and you want to show your boss the report you're working on from her terminal). That’s a special case, though. Terminal users who access their applications from load-balanced servers are bound to access more than one server at a time. Win2K and NT don't have any capabilities that can merge two copies of a profile into one, and I’m not aware of any third-party products with this capability (if you know of one, email me).

How, then, can you avoid losing profile changes? One option is to publish only desktops, not applications, and let users get to their applications from the desktop. Another option is to use static load balancing. Still another option—and, of the options that don't require third-party products, the one I like best—is to give terminal users mandatory profiles that you have tuned to their needs.

This user profile problem isn’t insurmountable. And, if your users aren't addicted to changing their profile settings every time they run an application, you might not have encountered the problem yet. But if you're investigating terminal services now that it's part of Win2K Server, you should consider the possibility that users with several copies of their user profiles open will lose profile settings.