Tools / Event IDs / Event ID 4625

Event ID 4625: failed logon

What Event ID 4625 (failed logon) means, the fields to check, what is normal and what is suspicious, with PowerShell and KQL queries to find it.

Log: Security · Severity: Low · MITRE ATT&CK T1110 · Updated 2026-11-03

Event ID 4625 is a failed logon. One or two are a typo. Hundreds are either an attack or, more often than anyone likes, a laptop or service with an old saved password. The Sub Status code and the source address settle which in a minute.

The fields that matter

FieldWhat it tells you
Status / Sub StatusWhy it failed. 0xC000006A wrong password, 0xC0000064 no such user, 0xC0000234 locked out, 0xC0000072 disabled.
Logon Type3 for network and SMB, 10 for RDP without NLA, 8 for basic-auth web apps, 4 and 5 for tasks and services.
Account For Which Logon FailedThe account being tried.
Source Network AddressWhere the attempt came from.
Workstation NameThe name the client sent. Attack tools often send random or blank names.

What is normal

A handful of failures followed by a success from the user's usual device, or a steady trickle from one internal server for one account (a stale password).

When Event ID 4625 is suspicious

Common false positive: Service accounts and scheduled tasks with an old password fail around the clock from the same server. Fix the credential instead of raising the threshold.

Find Event ID 4625 with PowerShell

Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4625; StartTime=(Get-Date).AddDays(-7)} -MaxEvents 50 |
  ForEach-Object {
    $d = [ordered]@{ Time = $_.TimeCreated; Computer = $_.MachineName }
    ([xml]$_.ToXml()).Event.EventData.Data | ForEach-Object { $d[$_.Name] = $_.'#text' }
    [pscustomobject]$d
  } | Format-List

Microsoft Sentinel (KQL)

SecurityEvent
| where TimeGenerated > ago(7d) and EventID == 4625
| project TimeGenerated, Computer, Account, Activity, EventData
| order by TimeGenerated desc

Related events

For a full walk-through, read Event ID 4625: failed logons explained.

FAQ

Why is the Source Network Address "-"?

The attempt did not come over the network: someone tried at the console or lock screen, or a local process tried to authenticate.

Where do failures for domain accounts show up on the domain controller?

As 4771 for Kerberos pre-authentication and 4776 for NTLM. Hunt for spraying across the domain with those.