Why won't my Windows service start?
A Windows service that refuses to start usually has a reason hiding in the event log. Check its status and startup type, read the error, then reset it to Automatic and restart it — all from the command line.
What this covers
A Windows service that won't start can be anything from a disabled startup type to a missing dependency or a logon failure. This guide walks through the command-line checks that narrow it down, then the two changes that fix the common causes.
Symptom
Check the service's status and startup type
A service that won't start is usually Stopped, Disabled, or set to Manual while nothing triggers it. Listing every service configured to start automatically shows at a glance whether yours is Running, Stopped, or missing from the list entirely (which means it's Disabled or Manual). If it appears as Automatic but Stopped, Windows already tried to start it and gave up — that's a failure, not a deliberate configuration.
Use Get-Service filtered on StartType to see every service set to Automatic.
$ Get-Service | Where-Object StartType -eq Automatic | Select-Object Name, DisplayName, StatusRead the error the service logged
The System log records why the Service Control Manager couldn't start a service — a missing file, a logon failure, a dependency that wasn't ready. Filtering for Level=2 (Error) entries and reading them newest-first surfaces the exact reason instead of forcing you to guess. The message normally names the service and the condition that blocked it.
Query the System or Application log for errors, newest first, without opening Event Viewer.
$ wevtutil qe System /q:"*[System[(Level=2)]]" /c:20 /rd:true /f:textSet the service to start automatically
If the service is set to Disabled, Windows will never start it, no matter how many times you try. Changing the startup type to Automatic removes that block. If it was already Automatic, leave it alone — this step only applies to services that are explicitly disabled, or stuck on Manual when they should come up on their own.
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 AutomaticStart the service and confirm it stays running
After changing the startup type, start the service and immediately check its status. If it comes back as Running, the fix worked. If it stops again within seconds, the startup type was not the problem — go back to the event log entry from the diagnose step, because the service is failing during its own start-up.
Stop, start, and restart Windows services in PowerShell — the forgotten one-liner alternative to services.msc or net stop/start.
$ Restart-Service -Name wuauserv -Force
Get-Service -Name wuauserv | Select-Object Name, Status, StartType▾ Undo
$ Start-Service -Name wuauservHow to confirm it worked
The service reports Status = Running and StartType = Automatic, and it is still in that state after a fresh restart attempt or a reboot.
Undo everything
Every command above can be reverted. Run these in order to undo all of it.
$ Start-Service -Name wuauserv
Set-Service -Name spooler -StartupType AutomaticReview before running — some steps may not be independent.
Sources
- Get-ServiceEvidence: Get-Service returns ServiceController objects for all services (no arguments = every service), which can be piped to Where-Object for filtering by properties such as Status.
- ServiceController.StartType PropertyEvidence: Documents the StartType property of ServiceController objects (the type returned by Get-Service) and the ServiceStartType enumeration values Automatic, Manual and Disabled.
- wevtutil - Windows CommandsEvidence: Documents wevtutil, including the query-events (qe) command with /q XPath filter, /c count, /rd reverse direction and /f text format.
- Set-ServiceEvidence: Documents the -StartupType parameter with values Automatic, Manual, Disabled (and AutomaticDelayedStart) for controlling when a service starts.
- Set-Service — Configure a Windows serviceEvidence: Syntax shows Set-Service -Name <string> -StartupType {Automatic | Manual | Disabled} for changing a service's start mode.
- Restart-Service - SS64Evidence: Shows Restart-Service usage and pipeline patterns with Get-Service.
- Restart-ServiceEvidence: Documents Restart-Service including -Force for dependent services.
Last verified: 2026-09-22
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.
Windows hangs on shutdown or never powers off? Diagnose it from the event log, cancel stuck shutdown timers, disable Fast Startup and verify a clean shutdown from the command line.
Work through repeating System and Application errors in the right order: query the log properly, look at the other places errors hide, then confirm the noise actually stops.