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 8 laptop. Whenever I pressed on shutdown, nothing happened. I had a similar problem with my Windows 7 machine, so I have some troubleshooting experience troubleshooting Windows will not shut down issues.
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 what ever 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 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 though 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 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.