Improve Logon Time by Removing Unnecessary Startup Applications
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:
- Adobe Reader Speed Launcher (reader_sl.exe), – in an attempt to speed-up Reader load time, Adobe installs this startup application (introduced in Adobe Reader 7, I believe),. Essentially all it does is silently load an invisible instance of Reader. This way when Reader is launched intentionally its modules are already in memory, resulting in somewhat faster startup time. While this technique might be acceptable in a single-user environment, it’s definitely a bad idea for Terminal Servers. First, if the session is used for a published application other than Adobe Reader then it’s much less likely that Reader will be launched by the user in the context of the same session. Second, if the published application is Adobe Reader, then it will be launched immediately in the session anyway, so pre-loading will not provide any benefits. Finally, in a multi-user environment, Adobe Reader may already be running in a different session, which may provide the same benefit as reader_sl.exe anyway. To Remove Adobe for the startup list of future sessions, simply uncheck it in Autoruns.
- Office speech recognition and the handwriting recognition (ctfmon.exe), – originally introduced in Microsoft Office, ctfmon monitors active windows and provides text input service support for speech recognition, handwriting recognition, keyboard, translation, and other alternative user input technologies. If you do not require support for alternative user input technologies you can remove this process from startup, as described in this Microsoft support article: http://support.microsoft.com/kb/823586/en-us
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.