| ID | Meaning | Log | Category | What it tells you |
|---|---|---|---|---|
| 4624 | Successful logon | Security | Authentication | An account logged on. Check the Logon Type: 2 interactive, 3 network, 4 batch, 5 service, 7 unlock, 8 network cleartext, 10 RDP, 11 cached credentials. |
| 4625 | Failed logon | Security | Authentication | A logon attempt failed. The Status and Sub Status codes give the real reason: 0xC0000064 no such user, 0xC000006A wrong password, 0xC0000234 account locked, 0xC0000072 account disabled. |
| 4634 | Logoff | Security | Authentication | A session ended. Pairs with 4624 by Logon ID. |
| 4647 | User-initiated logoff | Security | Authentication | The user chose to log off, rather than the session being torn down. |
| 4648 | Logon with explicit credentials | Security | Authentication | Someone used runas or supplied different credentials. A normal admin behaviour and a normal lateral-movement behaviour, which is why it is worth watching. |
| 4672 | Special privileges assigned | Security | Authentication | The logon session was granted administrator-equivalent privileges. Effectively "an admin just logged on". |
| 4740 | Account locked out | Security | Authentication | Lockout threshold reached. The Caller Computer Name tells you where the bad attempts came from — often a stale mapped drive or a service running as the user. |
| 4767 | Account unlocked | Security | Authentication | An administrator unlocked an account. |
| 4768 | TGT requested | Security | Kerberos | Kerberos authentication ticket issued. On a domain controller, this is the authoritative record of a domain logon. |
| 4769 | Service ticket requested | Security | Kerberos | A service ticket was issued. High volume; a burst of requests for many services from one account is a Kerberoasting indicator, especially with RC4 encryption type 0x17. |
| 4771 | Pre-authentication failed | Security | Kerberos | Kerberos equivalent of a bad password. Failure code 0x18 is a wrong password, 0x12 is a disabled or locked account. |
| 4776 | NTLM credential validation | Security | Authentication | The domain controller validated credentials over NTLM. Error 0xC000006A is a wrong password. |
| 4778 | Session reconnected | Security | Session | An RDP or console session was reconnected. |
| 4779 | Session disconnected | Security | Session | A session was disconnected but not logged off — the session is still running. |
| 1149 | RDP authentication succeeded | TerminalServices-RemoteConnectionManager | Session | Network-level authentication for RDP passed. Note this fires before the logon itself, so it is not proof of a successful logon. |
| 4720 | User account created | Security | Account management | A new account exists. Should be rare and always attributable. |
| 4722 | User account enabled | Security | Account management | A disabled account was re-enabled. |
| 4724 | Password reset attempted | Security | Account management | An administrator reset another account password. |
| 4725 | User account disabled | Security | Account management | |
| 4726 | User account deleted | Security | Account management | |
| 4738 | User account changed | Security | Account management | Attributes changed. The event lists which. |
| 4728 | Member added to global security group | Security | Account management | Watch specifically for Domain Admins and Enterprise Admins. |
| 4732 | Member added to local security group | Security | Account management | Watch for the local Administrators group on servers and workstations. |
| 4756 | Member added to universal security group | Security | Account management | |
| 1102 | Audit log cleared | Security | Audit policy | Someone cleared the Security log. There is almost no legitimate reason for this on a server. Treat it as an incident until proven otherwise. |
| 4719 | System audit policy changed | Security | Audit policy | Audit settings were modified — often the step before an attacker stops generating evidence. |
| 4688 | New process created | Security | Process | Process creation with the command line, if command-line auditing is enabled. The single most useful event for investigation, and off by default. |
| 4697 | Service installed | Security | Persistence | A service was installed, recorded in the Security log. |
| 7045 | New service installed | System | Persistence | A service was installed, recorded in the System log. A very common persistence mechanism, and often the clearest sign of one. |
| 4698 | Scheduled task created | Security | Persistence | Another routine persistence mechanism. Should be attributable to a change. |
| 4699 | Scheduled task deleted | Security | Persistence | |
| 4702 | Scheduled task updated | Security | Persistence | |
| 4104 | Script block logging | PowerShell/Operational | PowerShell | The actual PowerShell that ran, including code assembled at runtime. Deobfuscates most encoded commands. Enable this. |
| 4103 | Module / pipeline logging | PowerShell/Operational | PowerShell | Pipeline execution details. |
| 400 | Engine state changed to Available | Windows PowerShell | PowerShell | A PowerShell session started. The HostApplication field shows what launched it. |
| 5140 | Network share accessed | Security | File share | A share was accessed. Watch for ADMIN$, C$ and IPC$ from unexpected sources. |
| 5145 | Detailed share access check | Security | File share | Per-file access checks. Very high volume; useful scoped to sensitive shares. |
| 5142 | Network share added | Security | File share | |
| 5144 | Network share deleted | Security | File share | |
| 6005 | Event log service started | System | Boot | Effectively "the system booted". |
| 6006 | Event log service stopped | System | Boot | A clean shutdown. |
| 6008 | Unexpected shutdown | System | Boot | The previous shutdown was not clean. Pair with Kernel-Power 41. |
| 41 | Kernel-Power: reboot without clean shutdown | System | Boot | Power loss, hard reset, thermal event or a bugcheck that could not write a log. On a server, look at the UPS and the PSU first. |
| 1074 | Shutdown initiated | System | Boot | Names the process and user that requested the shutdown or restart, and the reason if one was given. |
| 7036 | Service entered running or stopped state | System | Service | Very high volume and mostly noise, but useful to confirm exactly when a specific service stopped. |
| 7031 | Service terminated unexpectedly | System | Service | A service crashed. Includes how many times and what recovery action was taken. |
| 7034 | Service terminated unexpectedly (no recovery) | System | Service | |
| 7000 | Service failed to start | System | Service | Usually a permissions problem, a missing dependency, or a bad path. |
| 55 | NTFS structure corruption | System | Disk | The file system is damaged on that volume. Run chkdsk and then check the disk itself — this is often the first sign of failing hardware. |
| 51 | Paging error on disk | System | Disk | A read or write to the page file failed. Frequently a dying drive. |
| 7 | Bad block | System | Disk | The device has a bad block. Take it seriously on a single disk. |
| 11 | Driver detected a controller error | System | Disk | Often cabling, a controller fault, or a drive on the way out. |
| 153 | I/O operation retried | System | Disk | The storage stack retried a failed request. In volume, a strong failing-disk indicator. |
| 129 | Reset to device issued | System | Disk | The storage controller reset the device because it stopped responding. |
| 1116 | Malware detected | Windows Defender | Defender | Defender found something. 1117 records what it did about it. |
| 1117 | Action taken on malware | Windows Defender | Defender | Remediation succeeded. |
| 5007 | Defender configuration changed | Windows Defender | Defender | Settings changed — including exclusions being added, which is a common attacker step. |
| 1000 | Application error | Application | Application | An application crashed. Gives the faulting module and offset. |
| 1001 | Windows Error Reporting | Application | Application | The crash bucket for a 1000, often with more detail. |
Windows generates thousands of distinct event IDs and the overwhelming majority are noise. The 59 above are the ones that actually come up when you are investigating an incident, chasing an account lockout, or working out why a server rebooted at 3 a.m. Every entry has been checked against Microsoft's documented meaning rather than copied from a listicle.
4688 with command line auditing. Process creation on its own is moderately useful; process creation including the full command line is transformative. It is the difference between knowing PowerShell ran and knowing what it ran. Enable "Include command line in process creation events" in Group Policy — it is off by default.
4104 script block logging. Records the actual PowerShell that executed, after any runtime assembly. That means it defeats most obfuscation and base64-encoded commands, because it logs what was really run rather than what was typed. Also off by default.
1102. Nobody needs to enable this one, but somebody should be alerted on it. Clearing the Security log has essentially no legitimate operational reason on a server.
A failed logon on its own tells you very little. The useful detail is in the sub-status code:
0xC0000064 — the username does not exist. In volume, this is enumeration.0xC000006A — correct username, wrong password. In volume against one account, that is a brute-force attempt; across many accounts with the same password, that is password spraying.0xC0000234 — the account is locked out.0xC0000072 — the account is disabled. Somebody is trying credentials for a former employee.0xC000006F / 0xC0000070 — outside permitted hours, or from a disallowed workstation.The pattern across accounts and source addresses matters far more than any single event.
The complaint is always "my account keeps locking". The answer is almost always a stale credential somewhere, not an attacker. Find the 4740 on the domain controller and read the Caller Computer Name — that is the machine generating the bad attempts. Then on that machine look for a mapped drive with saved credentials, a scheduled task or service running as the user, a phone with an old Exchange password, or a saved RDP session.
Default Security log size fills in hours on a busy domain controller, and then rolls. By the time an incident is noticed — typically weeks later — the evidence is gone. Two fixes: raise the log size substantially, and forward events off the box, so that clearing a local log does not destroy the record. Windows Event Forwarding is built in and free; any SIEM does it better.
Setting up audit policy, log retention and forwarding that actually holds evidence is part of managed IT, and reviewing whether yours would survive an investigation is part of a security audit.
We do managed IT, networking and security for businesses across Central Oregon.
Managed IT Services Call 541-508-8797