Manage Windows startup programs
Control what runs when Windows starts: open the Startup folder, change service startup types, and handle Fast Startup quirks.
What this covers
Windows starts programs in two main places: the Startup folder (shortcuts per user or all users) and background services. This setup checklist walks through both, plus the Fast Startup setting that can hide your changes.
Open the Startup folder to see what launches at logon
Programs with a shortcut here start every time you sign in. Open shell:startup for your user, or shell:common startup for all users. You'll know it worked when an Explorer window opens showing the startup shortcuts, which you can delete or add shortcuts to.
Add or remove logon-startup programs by opening shell:startup (current user) or shell:common startup (all users).
$ explorer shell:startup
explorer shell:common startup▾ Undo
$ Delete the shortcut from the Startup folder.Control background services that start at boot
Not all startup programs live in the Startup folder — many are Windows services. Use Set-Service to set a service to Disabled, Manual (starts on demand), or Automatic. Verify by reopening the service's properties and confirming the startup type changed.
Use Set-Service to make a service start at boot, start on demand, or never start at all.
$ Set-Service -Name spooler -StartupType Disabled :: also valid: Manual, Automatic, AutomaticDelayedStart▾ Undo
$ Set-Service -Name spooler -StartupType AutomaticCheck Fast Startup if your boot changes don't seem to apply
Fast Startup (hybrid boot) means shutdown doesn't fully end the session, so startup changes can seem ignored. Disabling it via the HiberbootEnabled registry value forces a clean boot. It worked if shutdown/restart now feels like a full reboot. Note this is a medium-risk registry edit — restart afterward.
Disable or re-enable Windows Fast Startup (hybrid boot) with the HiberbootEnabled registry value to fix shutdown and dual-boot problems.
$ reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Power" /v HiberbootEnabled /t REG_DWORD /d 0 /f▾ Undo
$ reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Power" /v HiberbootEnabled /t REG_DWORD /d 1 /fHow to confirm it worked
Sign out and back in (or restart): the programs you removed should not launch, and any service you set to Disabled should not be running.
Undo everything
Every command above can be reverted. Run these in order to undo all of it.
$ reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Power" /v HiberbootEnabled /t REG_DWORD /d 1 /f
Set-Service -Name spooler -StartupType Automatic
Delete the shortcut from the Startup folder.Review before running — some steps may not be independent.
Sources
- Windows shell: commands - SS64Evidence: Lists the shell: constants such as shell:Downloads, shell:sendto and shell:startup that open known Windows folders.
- Set-Service — Configure a Windows serviceEvidence: Syntax shows Set-Service -Name <string> -StartupType {Automatic | Manual | Disabled} for changing a service's start mode.
- Start - SS64Evidence: start launches shell: locations; document shortcuts placed in Startup folders run at logon.
- Set-ServiceEvidence: Documents the -StartupType parameter with values Automatic, Manual, Disabled (and AutomaticDelayedStart) for controlling when a service starts.
- Distinguishing Fast Startup from Wake-from-HibernationEvidence: Explains that Fast Startup is a hybrid shutdown that hibernates the kernel session, so restart and full shutdown behave differently.
- powercfg - SS64Evidence: Documents powercfg /hibernate, which must be enabled for Fast Startup's kernel hibernation file to exist.
Last verified: 2026-09-21
Related guides
A step-by-step command-line guide to find out why Bluetooth is not working on Windows and get it back — from device status to services to drivers.
Check your Windows drives' hardware health, scan for file system errors, and schedule a repair — all from PowerShell and the command prompt.
Diagnose which processes and services are consuming your RAM on Windows, and verify the fix from the command line.