EventPeeker
Event ID 4700Audit SuccessSecurityT1053.005

Windows Event ID 4700Scheduled Task Enabled

Logged when a previously disabled scheduled task is enabled — via schtasks.exe /change /enable, PowerShell Enable-ScheduledTask, or the Task Scheduler COM API.

MITRE ATT&CK

Technique

T1053.005 · Scheduled Task

Tactic

Execution

View on attack.mitre.org →

Why It Matters

Enabling a disabled task is a stealthier persistence technique than creating a new one. Attackers create or modify a task while it is disabled — bypassing execution monitoring — and then enable it in a separate step when ready to execute. This splits the suspicious activity into two lower-signal events: one modification (4702) and one enable (4700), neither of which looks alarming in isolation. The pattern disable (4701) → modify (4702) → enable (4700) is particularly common in post-exploitation frameworks that need to update a task's payload without triggering immediate execution or EDR alerts on task creation. Additionally, attackers disabling then re-enabling security-related tasks (backup agents, AV scheduled scans, monitoring heartbeats) to create maintenance windows for malicious activity generate 4700 as the cover-your-tracks step.

Key Fields

Task NameThe enabled task's name — if this matches a task that was recently modified (4702) or a built-in security/monitoring task that was previously disabled (4701), investigate immediately; unexpected enables of \Microsoft\Windows\ tasks by non-SYSTEM accounts are high-priority
Subject Account NameWho enabled the task — SYSTEM or a known deployment account is normal for legitimate re-enablement after patching. A standard user or unexpected privileged account enabling tasks outside a maintenance window is suspicious, especially if the same account modified the task in a preceding 4702 event
Subject Logon IDCorrelate with Event 4624 to determine how the account was authenticated when enabling the task — a Type 3 (network) logon indicates the enable was performed remotely, consistent with remote lateral movement preparation

Investigation Tips

  1. 1.Enable following modify is the core pattern: search for a 4702 (task modified) event for the same Task Name in the hours before this 4700. If the modification changed the task's <Actions> XML and this enable makes it active, you're looking at a two-step payload activation — the modification was the weaponization, the enable is the arming.
  2. 2.Disable-modify-enable sequence: look back for a 4701 (task disabled) event for the same Task Name before the 4702 modification. This three-event sequence — disable, modify payload, re-enable — is used by frameworks to update running tasks without triggering task-creation detections. All three events should be attributed to the same account within a compressed time window.
  3. 3.Built-in task enables from unexpected accounts: legitimate enables of Windows built-in tasks (any path under \Microsoft\Windows\) come from SYSTEM or Windows Update during patching. An interactive user account or service account enabling one of these tasks is unusual and warrants investigation of the task's current XML content.
  4. 4.Security task re-enable: if a security tool, backup agent, or monitoring heartbeat task was previously disabled (4701) and then re-enabled (4700) by the same non-SYSTEM account, this is the 'hide your tracks, then restore to avoid alerting on sustained silence' pattern. The window between disable and re-enable is when the attacker operated.
  5. 5.Correlate with execution: after 4700, the task will fire at its next trigger time. Check Event ID 4688 (process creation) for what the task spawned — the TaskScheduler/Operational log (Event 201 — Task completed action) gives you the exact execution timestamp and exit code.

Detection Logic (KQL)

Microsoft Sentinel (KQL) — detect the disable→modify→enable sequence indicating payload swap, and unexpected task enables from non-system accounts.

// Disable → modify → enable sequence within 1 hour (payload swap pattern)
let disables = SecurityEvent
| where EventID == 4701
| project DisabledTime = TimeGenerated, TaskName, Computer, Account = SubjectAccount;
let modifies = SecurityEvent
| where EventID == 4702
| project ModifiedTime = TimeGenerated, TaskName, Computer;
let enables = SecurityEvent
| where EventID == 4700
| project EnabledTime = TimeGenerated, TaskName, Computer, Enabler = SubjectAccount;
enables
| join kind=inner modifies on TaskName, Computer
| join kind=inner disables on TaskName, Computer
| where DisabledTime < ModifiedTime and ModifiedTime < EnabledTime
| where EnabledTime - DisabledTime < 1h
| project Computer, TaskName, Account, DisabledTime, ModifiedTime, EnabledTime
| sort by DisabledTime desc

// Built-in Windows task enabled by non-SYSTEM account
SecurityEvent
| where EventID == 4700
| where TaskName has_any ("\\Microsoft\\Windows\\", "\\Microsoft\\Edge\\")
| where SubjectAccount !endswith "$"
| where SubjectAccount !in ("SYSTEM", "NT AUTHORITY\\SYSTEM")
| project TimeGenerated, SubjectAccount, TaskName, Computer

Related Event IDs

4701Scheduled task disabled — the disable→enable pair indicates temporary suppression; disable→modify→enable = payload swap pattern
4702Scheduled task modified — modification followed by enable = two-step activation; the XML change was the payload, the enable arms it
4698Scheduled task created — task may be created in disabled state (no 4700 at creation time) then enabled later to separate creation from execution
4699Scheduled task deleted — enable followed by deletion = task enabled, executed once, then removed as cleanup
4688Process creation — what the task spawned after being enabled; look for schtasks.exe /change /enable immediately before 4700 to confirm the enablement method
4624Successful logon — correlate Subject Logon ID to determine if the enable was performed locally or remotely

Full Detection Guide Available

This event ID has a full detection guide with investigation steps, remediation advice, and example log entries.

View full guide for Event ID 4700

See Event ID 4700 in your logs

Upload a Windows Event Log (.evtx) file — EventPeeker automatically detects scheduled task enabled patterns, maps findings to MITRE ATT&CK, and generates an AI triage report.

Analyze EVTX Logs Free →