1. Corrupted XML Task Files — The Most Common Cause
Nine times out of ten, the Task Scheduler service fails to start because a single scheduled task has a corrupted or malformed XML definition. Windows tries to load all tasks at service startup — if one's broken, the whole thing chokes.
You'll see Event ID 101 in the System log, or the service just stops with a generic "Error 1053: The service did not respond to the start or control request in a timely fashion."
The fix: Stop the service, blow away the corrupted tasks, and let the service rebuild them. Here's the step-by-step:
- Open an elevated Command Prompt or PowerShell (Run as Administrator).
- Stop the service:
net stop schedule - Navigate to the tasks folder:
cd %windir%\system32\Tasks - Delete every .job file and subfolder:
del *.job /s /qand thenrmdir /s /q * - Start the service:
net start schedule
If the service starts, you're golden — Windows will repopulate the folder with default tasks on the next reboot. You'll lose any custom tasks you created, but that's better than a bricked service.
Don't bother with the Task Scheduler GUI to delete individual tasks; the UI often hangs when a corrupt task exists. Nuke the folder from the command line.
2. Locked Database File (SchCache.db)
If deleting the tasks folder didn't work, the culprit is probably a locked SchCache.db file. Windows Task Scheduler uses this SQLite database to store task state. If it gets corrupted or locked by another process (usually a leftover antivirus scan or a crashed service), the service won't start.
You'll see error "The service cannot be started, either because it is disabled or because it has no enabled devices associated with it" — misleading, I know. Check Event Viewer for Event ID 102 with a reference to SchCache.db.
The fix:
- Stop the schedule service again:
net stop schedule - Delete the cache file:
del %windir%\system32\Tasks\SchCache.db - Delete any .tmp files in that folder:
del %windir%\system32\Tasks\*.tmp /s /q - Start the service:
net start schedule
If it still doesn't start, check if TrustedInstaller.exe or your AV has a lock on the file. Use handle64.exe from Sysinternals to find the locking process: handle64.exe -a SchCache.db. Kill that process, then delete the file.
3. Permissions on the Tasks Folder
Less common, but I've seen it on domain-joined machines after a group policy change. If the SYSTEM account or NETWORK SERVICE loses read/write access to C:\Windows\System32\Tasks, the service fails silently.
Check icacls %windir%\system32\Tasks — you should see entries for SYSTEM:(OI)(CI)(F) and BUILTIN\Administrators:(OI)(CI)(F). If they're missing or wrong, reset them:
icacls %windir%\system32\Tasks /reset /t
icacls %windir%\system32\Tasks /grant SYSTEM:(OI)(CI)F /t
icacls %windir%\system32\Tasks /grant BUILTIN\Administrators:(OI)(CI)F /t
Then restart the service. If it still won't start, check the parent folder (system32) permissions — sometimes a misapplied security policy trickles down.
Quick-Reference Fix Table
| Cause | Symptom | Command / Action | Time to Fix |
|---|---|---|---|
| Corrupted XML tasks | Event ID 101, service fails at startup | Delete all .job files and subfolders in %windir%\system32\Tasks | 2 minutes |
| Locked SchCache.db | Event ID 102, file in use | Delete SchCache.db and .tmp files | 3 minutes |
| Broken permissions | Service stops without error, icacls shows missing entries | icacls reset + grant SYSTEM and Administrators | 5 minutes |
One more thing — if you're on Windows Server 2012 R2 or older, also check the Windows Update service. I've seen it hold a lock on the Tasks folder during patching. Stop WUAUServ, fix the scheduler, then restart WU.
That's it. Don't waste time with SFC or DISM for this — they almost never help when the Task Scheduler service won't start. The database or the tasks themselves are the problem 95% of the time.