Stop Msconfig.exe's Post-Boot Confirmation from Popping Up

You can eliminate this dialog box several ways

Downloads
97078.zip

Executive Summary:

In Windows Vista, Windows Server 2003, and Windows XP, Microsoft includes the System Configuration Utility (msconfig.exe). Msconfig.exe lists and lets you disable certain items that run automatically when you log on. After you reboot the machine, msconfig.exe displays a confirmation dialog box that notes the computer's configuration has changed. In a technical support environment, this dialog box can worry end users who aren't familiar with it. Here are three ways to prevent that dialog box from appearing.

I use Microsoft's System Configuration Utility (msconfig.exe) almost every time I set up or troubleshoot a Windows system. Msconfig.exe gives me a one-stop resource for checking startup items and installed services in an arbitrary collection of installed software and for disabling the items I think shouldn't be running. However, when you change the system configuration through msconfig.exe, the utility always pops up the confirmation dialog box that Figure 1 shows after you reboot the machine. This can be a significant irritation in a technical support environment.

For power users making their own configuration changes, the post-boot confirmation dialog box is useful. It reminds them that they changed their computer's configuration, and they know to dismiss the confirmation dialog box. However, when you use msconfig.exe as a support technician, the confirmation dialog box is a cosmetic flaw that worries end users who aren't familiar with it. Of course, you should reboot a machine after modifying persistent settings and verify that everything works, but "should" is a fuzzy term. It might not be feasible to wait for a reboot. You might be changing many systems rapidly, working on a server in active use, or using Remote Assistance to help a user who needs to keep working.

Msconfig.exe runs on reboot by inserting an entry named MSConfig under the registry key HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run. To prevent the dialog box from showing up, you can manually delete the MSConfig entry, use the Console Registry Tool (reg.exe) to delete it, or use a batch file to delete it.

Manually Deleting the MSConfig Entry
If you're working on a remote machine or you're in a location in which there aren't any registry tools available, you can manually delete the MSConfig entry. After using msconfig.exe, close it. Then run regedit, navigate to the MSConfig entry, and manually delete that entry.

Using Reg.exe
You can use reg.exe to automatically delete the MSConfig entry in the registry. To delete the MSConfig entry on the local machine, open cmd.exe and run the command

reg delete HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v msconfig /f

In this command, delete tells reg.exe to perform a delete operation in the specified key HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run. The /v switch tells reg.exe the entry to delete, which in this case is MSConfig. By default, reg.exe will prompt you before deleting an entry; including the /f switch tells reg.exe to skip this prompt.

One of the niceties of reg.exe is that it works on remote machines as well local machines, so you can run the command remotely if necessary. For example, to delete the value on a remote workstation named WS42, you would use the command

reg delete \\WS42\HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v msconfig /f

However, you're limited to deleting the MSConfig entry one remote machine at a time. In this situation, manually deleting the MSConfig entry is as fast as using reg.exe and doesn't require you to remember the reg.exe command's syntax. So what's the point in using reg.exe? When you have to delete the MSConfig entry on multiple machines, your best bet is to use a batch file.

Using a Batch File
I keep a batch file named RunCleanMsconfig.cmd, which Listing 1 shows, in a scripts folder on a USB drive I take with me on support calls. (On a LAN, the script winds up in a universally available directory, which is mapped in my profile.) Instead of running msconfig.exe, then deleting the MSConfig entry, I run RunCleanMsconfig.cmd. This script runs msconfig.exe for me, and when I exit, it automatically deletes the MSConfig entry from the registry. There's no extra work involved other than opening the USB drive or LAN folder (or typing the name if it's in a search path).

Discuss this Article 3

Pramod (not verified)
on Sep 25, 2007
very nice
myhotline (not verified)
on Jan 31, 2008
its most imp articale
Sean (not verified)
on Oct 5, 2007
Interesting

Please or Register to post comments.

IT/Dev Connections

Las Vegas
September 30th - October 4th

Paul ThurottYou'll have the opportunity to experience:
• The Microsoft
Technology Roadmap
• Office 365 Implementation
• Hyper-V Optimizing
• Windows 8 Deployment
and much more!

Come See Paul Thurrott & Rod Trent in Person!

Early Registration Now Open

Upcoming Training

Mastering SharePoint 2013: Succeeding, Not Just Surviving

Building on the success of the “Mastering SharePoint 2010” seminars, the presenters have updated the content to cover the latest and greatest SharePoint product: SharePoint 2013. While SharePoint 2013 is relatively new on the marketplace, the presenters have been working with SharePoint 2013 for well over a year, and have implemented it with a number of clients in production environments.

Register Now

Current Issue

May 2013 - The NameTranslate object is useful when you need to translate Active Directory object names between different formats, but it's awkward to use from PowerShell. Here's a PowerShell script that eliminates the awkwardness.

CURRENT ISSUE / ARCHIVE / SUBSCRIBE

Windows Forums

Get answers to questions, share tips, and engage with the Windows Community in our Forums.