Menu

The Mystery of the “Diagnostic Startup”

August 3, 2013 - General Computing, Windows

Through quite a number of versions, Windows has included a tool called “MSConfig” for configuring your software setup. There is a lot of confusion about this tool. Some recommend using it only for diagnostic purposes, then reverting the changes made and using another startup tool.

I thought I would examine exactly what the tool does. For this investigation I will be using a Windows XP SP3 Virtual Machine.

I started with the quickest route: I chose selective startup and rebooted. I got this dialog when the system started:

This dialog appears after rebooting when using msconfig's selective startup option.

This dialog appears after rebooting when using msconfig’s selective startup option.

Of interest is that this is actually just msconfig saying “hey, I done disabled some things because you said to, you can start me up and fix it if you wish”. This is probably a UI change they added because it could be possible for a user to use msconfig and forget about it. Looking into it, MSConfig simply inserts itself into the “run” key and autoruns at boot, presenting this warning. The other changes are made permanently in that services and other startup programs are not started; that is to say, entries in the run registry, startup folder, and appropriate services registry settings are deleted.

So the question is- how does msconfig magically recreate this data when you re-enable items? pretty simply- it simply copies the old values to it’s own data key, HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\MSConfig\startupreg. This key stores the information it has “unchecked” as well as current state information.

This is an interesting discovery. Most startup tools that provide the ability to check and uncheck elements have ‘backup’ mechanisms that simply move data keys around; when you uncheck they get moved from the Run key (for example); when you check them off they get moved back, etc. Then the entire listing is simply based of the aggregate of the two locations, with the elements in the actual Run key being checked and those in the backup location being unchecked. AutoRuns does this, as do most “startup” control panel programs. This is what makes things a bit weird, as many technical types suggest that MSConfig only be used for diagnostic purposes, and not permanent changes. Based on this research here it seems like such a tenet is not particularly helpful, as most of the functionality is in MSConfig, since it does not actually put it Windows into any special startup mode. The only basis for such a conclusion is that MSConfig starts with the system after it is used to make changes, and presents a warning that changes were made. You can tick the checkbox in the dialog and MSConfig will not show the message again, making the end result exactly the same as any other startup tool.

As such, my conclusion is that the consideration that msconfig is a “diagnostic” tool, and that other Applications are needed for more permanent changes is not based on how the program actually works but rather (mostly reasonable) suppositions about how the program works based on the dialog it shows when you restart. Nevertheless the end result is quite easily the same.

Have something to say about this post? Comment!