Security tooling being disabled.
What gives it awayA 7031 for an antivirus, EDR, or log forwarding service, particularly one that does not recur and coincides with other unusual activity.
ATT&CK T1562.001Nothing matches that yet. Tell us what you were looking for and it goes on the list.
Windows System Log · Event 7031
A Windows service crashed rather than stopping cleanly, and Windows is recording what it plans to do about it. The service name is the whole event — everything useful comes from working out why that particular service died.
Also written as 7031Event ID 7031service terminated unexpectedlyService Control Manager 7031
A background Windows component stopped working and Windows restarted it. Usually harmless and self-correcting. Worth attention if it happens repeatedly or if the name mentions your antivirus.
Watch this specifically for security agents, logging agents, and EDR services. Attackers crash or stop defensive services deliberately, and a 7031 for your endpoint agent should be treated as a potential tamper event until proven to be a bug. The restart count in the message tells you whether this is the first failure or a repeating one.
Sanitised. Addresses come from the RFC 5737 documentation ranges.
The Print Spooler service terminated unexpectedly. It has done this 3 time(s). The following corrective action will be taken in 60000 milliseconds: Restart the service. Everything else in the log line is context.
Most of the time it is one of these.
What gives it awayA 7031 for an antivirus, EDR, or log forwarding service, particularly one that does not recur and coincides with other unusual activity.
ATT&CK T1562.001What gives it awayThe Windows Event Log service or a forwarding agent terminating, followed by a gap in collected events.
ATT&CK T1562.002What gives it awayA 7031 for a service whose configured recovery action runs an unexpected binary.
ATT&CK T1543.003Get-WinEvent -FilterHashtable @{LogName='System'; Id=7031,7034} -MaxEvents 50 | Select-Object TimeCreated, Id, Message | Format-List Event | where EventLog == 'System' and EventID in (7031, 7034) | extend Service = extract(@'The (.+?) service terminated', 1, RenderedDescription) | summarize count() by Computer, Service | order by count_ desc index=wineventlog EventCode IN (7031,7034) | rex "The (?<service>.+?) service terminated" | stats count by service dest | sort -count It depends entirely on which service. A print spooler or an update service crashing occasionally is ordinary and self-correcting. Your antivirus, EDR agent, or the Windows Event Log service terminating is worth investigating properly, because those failures leave the machine less protected or less observable.
Find out why it is crashing rather than just restarting it. Check the Application log at the same timestamp for a crash record naming the faulting module, then update or reinstall whatever that points at. Adjusting the service's recovery settings to restart it faster hides the problem without solving it.
Both mean a service terminated unexpectedly. 7031 is written when the service has a configured recovery action, and the message tells you what Windows will do next. 7034 is written when there is no recovery action, so Windows just records the failure and leaves the service stopped.
Last reviewed 28 August 2026