Why it takes a very long time to turn on Windows features in Vista through control panel.

So you pick up your new machine and start it up. During the initial screens you may be asked to select the language of your choice and then you are warned that the selection is not reversible. This usually occurs on computers that were built to be shipped to multiple countries. Some manufacturers usually load several pertinent language packs onto the machine and allow the user to select the one they will use. Vista Business, Vista Home Premium and Vista Home Basic allow only one language pack to be installed, and as a result there is no functionality to install more OR uninstall the extras. What happens after you've made your selection the first time, the system will take the available time (while you are working on the machine or have left it unattended) and will "unstage" all the unused language packs. This takes about 24 hours of idle time and may take longer if you are using your machine during the first 24 hours, or if you shut down your machine when you are not using it.

Due to a design limitation in the servicing stack of Windows Vista, when you try to turn on a Windows feature (i.e., a game, FTP, etc), the new feature must get installed for all the languages which are installed on your machine, regardless of whether they are active or "unstaged". Moreover, all the hotfixes you have applied to your machine will have to be applied to the new Windows feature as well. Thus it takes an exceptionally long time to do seemingly a very innocent "turning on a Windows feature". During this time there is an exceptionally high number of Windows Event Logs that are generated, most of which inform that the action did not apply to your machine (since you don't really have many language packs installed and thus they don't apply to your machine). However after all the extra language packs are finally "unstaged", it takes considerably less time to turn on a Windows feature, but still much longer than it would have with Windows XP. This issue is already redesigned in the next version of Windows, Windows 7.

If you need to help out the unstaging of the extra language packs, use LPREMOVE.EXE which is in your system32 folder. You may run it in an elevated command prompt with the /? switch to learn more about it. It will kick in next time you start windows and will automatically remove unused language packs to the unstaging area.

This issue is also present to a lesser degree in Vista Enterprise and Vista Ultimate. These two versions support multiple language packs and as such offer the functionality of adding or removing them using the add/remove programs. However due to the same servicing stack design issue and the fact that all hotfixes and updates have to be applied, turning on Windows features will take a bit longer than you might expect, but certainly not as long as it does with Vista Business, Vista Home Premium or Vista Home Basic.

The following article has been published: http://support.microsoft.com/kb/967256

Additionally, a similar issue for Server 2008 has been published as http://support.microsoft.com/kb/967542