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.

WindowssystemcmdservicespowershellDiagnosticsevent-logMedium risk
Run Get-Service to see whether the service is Stopped or Disabled, then read the System event log for the error it logged on startup — that error usually points straight at the cause.

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

?You try to start a service (via services.msc, net start, or Start-Service) and it immediately stops, throws 'Error 1053: The service did not respond in a timely fashion', or the Start button is greyed out. Sometimes the service simply isn't running after a reboot, even though it's set to Automatic.

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.

Command
$ Get-Service | Where-Object StartType -eq Automatic | Select-Object Name, DisplayName, Status

Read 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.

Command
$ wevtutil qe System /q:"*[System[(Level=2)]]" /c:20 /rd:true /f:text

Set 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.

Command
$ Set-Service -Name spooler -StartupType Disabled    ::  also valid: Manual, Automatic, AutomaticDelayedStart
▾ Undo
Undo
$ Set-Service -Name spooler -StartupType Automatic

Start 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.

Command
$ Restart-Service -Name wuauserv -Force
Get-Service -Name wuauserv | Select-Object Name, Status, StartType
▾ Undo
Undo
$ Start-Service -Name wuauserv
!Changing a service's startup type or restarting it affects anything that depends on it — other services, applications, and in the case of critical services like RPC, the whole system. Don't disable services you didn't intend to; if the service is a Windows component, prefer Automatic (Delayed Start) over Disabled. Restarting a service can drop active connections.

How 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.

Undo everything
$ Start-Service -Name wuauserv
Set-Service -Name spooler -StartupType Automatic

Review before running — some steps may not be independent.

Sources

  • Get-Service
    Microsoft Learn · vendor-doc · 2026-09-17
    Evidence: 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 Property
    Microsoft Learn · vendor-doc · 2026-09-17
    Evidence: Documents the StartType property of ServiceController objects (the type returned by Get-Service) and the ServiceStartType enumeration values Automatic, Manual and Disabled.
  • wevtutil - Windows Commands
    Microsoft Learn · vendor-doc · 2026-09-17
    Evidence: Documents wevtutil, including the query-events (qe) command with /q XPath filter, /c count, /rd reverse direction and /f text format.
  • Set-Service
    Microsoft Learn · vendor-doc · 2026-09-17
    Evidence: Documents the -StartupType parameter with values Automatic, Manual, Disabled (and AutomaticDelayedStart) for controlling when a service starts.
  • Set-Service — Configure a Windows service
    SS64 · technical · 2026-09-17
    Evidence: Syntax shows Set-Service -Name <string> -StartupType {Automatic | Manual | Disabled} for changing a service's start mode.
  • Restart-Service - SS64
    SS64 · technical · 2026-09-17
    Evidence: Shows Restart-Service usage and pipeline patterns with Get-Service.
  • Restart-Service
    Microsoft Learn · vendor-doc · 2026-09-17
    Evidence: Documents Restart-Service including -Force for dependent services.

Last verified: 2026-09-22

Related guides