I use a laptop just to test software and engage in some bug fixing. Recently I ran into an issue where I was unable to shut down my Windows laptop. Whenever I pressed on shutdown, nothing happened. I had a similar problem with my earlier Windows machine, so I have some troubleshooting experience troubleshooting Windows will not shut down issues.
Reset BootExecute registry value
The number one rule of a good technician is to check the logs before anything else. Logs mean Windows Event Log to see if any errors or any clues are there. Otherwise, whatever you do would just be a shot in the dark – it may hit, or it may miss. In my opinion, troubleshooting is an art, and it takes time to master it. But it’s satisfying and worth the effort!
Selective Startup in Windows 11/10/8
Back to the topic. So I went through the Event Viewer, with no luck. I checked the Application Log, Security Log, System Log but found nothing related to the issue. So I thought of using one of the classic troubleshooting steps I often use, and that is “Selective Startup”. For those who don’t know, Selective Startup is a way where we disable all the non-Microsoft items from Startup and have a Clean Boot.
Open up Task Manager
Click on “More details” and click on “Startup” tab
Sort by Publisher. Disable the non-Microsoft startups. To disable right-click on the item and click on Disable
Make sure you don’t disable any other important applications like your motherboard chipset, Audio drivers, Display drivers, WiFi drivers, etc.
Now I powered off my computer, booted it, and tested it. Still no luck.
Then I researched a bit and found a registry key, whose value determines the startup & shutdown behavior I decided to try it out. Please take a registry backup before you make any change. To take a backup:
Go to Modern UI screen and type in “Regedit” and press Enter
Then go to File > Export > Under Export range, make sure you choose “All”
Then click on Save.
Now we are going to make those registry changes:
- Go to the following location-
- HKEY_LOCAL_MACHINE > SYSTEM > CurrentControlSet > Control > SessionManager
- Now on the right-side pane, you’ll find BootExecute
- Right-click and click on Modify
- Remove all the values from it and replace it with autocheck autochk * which is the default value.
- Then click OK and exit the Registry Editor.
I rebooted the system and tested it again. It seemed to work fine.
The bootexecute autocheck autochk * value specifies the applications, services, and commands executed during startup. It may include additional commands after the autocheck autochk * value. But do not delete the default value, autocheck autochk *, from the value of BootExecute.
I know it’s a lot of trouble going through to get something fixed, but it’s worth it. I hope you find this fix helpful.