Most Server Based Computing solutions, such as Ericom PowerTerm WebConnect or Citrix Presentation Server, strive to make launching published applications as similar as possible to launching local applications. For example, such solutions create icons on the local Desktop and Start Menu for published applications and can even associate local file types with published applications. And yet there are several significant differences between the actual process of launching a published application on a Terminal Server and a local application. One such difference is that launching a published application on a Terminal Server often requires starting a new user session on that Terminal Server (unless Session Sharing occurs, which is why Session Sharing is so desirable). The biggest annoyance this represents for the end-user (aside from the potential for profile corruption) is the delays caused by the session creation and consequent logon, both of which can be fairly lengthy compared to the time required for the actual application to start. In a previous post I described a new Windows Server 2008 feature, called Parallel Session Creation, which reduces the delay caused by session creation. In this post I will describe a method for shortening logon time.
Perhaps the most straightforward means of shortening the logon time is to remove unnecessary startup applications. Startup applications are applications that run at Windows startup, and it turns out that there are often a large number of such applications, and that many of them are indeed unnecessary. Probably the best way to view the complete list of startup applications is to use the SysInternals Autoruns utility. Here’s a screenshot from my own laptop: As you can see, this list is quit extensive, and I’ve seen much longer. In a Terminal Server environment, however, I would consider such a list as being excessive. Not only do startup applications slow down logons but they also often continue running throughout the session’s lifetime, consuming system resources such as CPU, memory and handles. Also, they can introduce a certain amount of instability to the system. In a Terminal Services environment these deficiencies may be multiplied by the number of concurrent sessions.
It’s not always easy to determine which startup applications are necessary and which are not. You certainly do not want to remove startup applications that are actually required. The best approach is to review the list, search the web (which you can conveniently do from within Autoruns simply by right-clicking on an item in the list), and make educated decisions. When in doubt, don’t remove. To help you on your way here are two recommendations to start with:
Whether or not you gain any noticeable improvements to the logon time of your Terminal Servers is very much dependant on their configuration and utilization. However, every journey begins with a first step and every little bit helps.