Quick answer:

  1. 1️⃣ Windows Event Log Viewer lists 4625 with Status, Sub Status and Logon Type columns to explain failed logons.
  2. 2️⃣ Built-in Event Viewer: Windows Logs > Security > Filter Current Log > type 4625 in the Event IDs box.
  3. 3️⃣ PowerShell: Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4625}.
  4. 4️⃣ Reason and source: Sub Status 0xC000006A is a wrong password, 0xC0000064 an unknown user, 0xC0000234 a locked account; Source Network Address and Workstation Name show the IP and machine.
Windows Event Log Viewer Screenshot.
️ Eugene - CEO at SoftOrbits, Candidate of Technical Sciences, has more than 16 years of expertise in software development, photo and multimedia applications, enhancing and transforming digital images and videos.
📅 Last updated on:  2026-11-04
What you will learn
Apply in 10 min Saves 1 hMedium

What you'll need
  • A Windows 10 or 11 PC or a Windows Server, opened with an administrator account
  • Windows Event Log Viewer for the ready-made failed sign-in view
  • Event Viewer and PowerShell, both already in Windows
  • About 10 minutes for the first pass through the log

How to list failed logons with the reason in columns

TL;DR

Windows Event Log Viewer has a ready-made Failed sign-in attempts view with 4625, Kerberos failures (4771) and NTLM credential checks (4776) from the last 7 days. Each row shows the account name, Status and Sub Status codes beside the logon details, so you can read the reason without opening each event.

In Event Viewer, you open each entry, scroll to Failure Information, copy the hex code and look it up. Five events take a minute. A few hundred can take most of an afternoon.

The view runs one XPath query against the Security channel. Windows does the filtering, returning the same events as Event Viewer. You get nine columns, from TimeCreated and TargetUserName to SubStatus and FailureReason. A hint beside Sub Status translates common codes, including 0xC000006A for a wrong password and 0xC0000070 for an account barred from signing in on that machine.

Open the failed sign-in view:

  • Start the program as administrator; Windows lets only admins and the Event Log Readers group read the Security channel
  • Pick Failed sign-in attempts from the ready-made views
  • Sort by IpAddress or TargetUserName to see which source or account fails most often
  • Select a row to read the built-in note on 4625: the logon attempt was rejected, and Status and Sub Status give the exact reason
  • Export the list as CSV or Excel for a spreadsheet, or HTML or PDF for a report

You can also open .evtx files copied from another computer. To check a domain controller without signing in interactively, save its Security log, copy the file and open it in the event log viewer on your PC.
On our test machine in August 2026, a rule on 4625 fired as a live sign-in failed. With a license, a threshold rule watches the log and flags bursts of failures without a manual refresh.

Event Viewer by hand
  • Filter the Security log to 4625
  • Open each event and scroll to Failure Information
  • Look up every hex code on a separate page
VS
Failed sign-in attempts view
  • 4625, 4771 and 4776 in one list
  • Logon reason codes and source IP as columns
  • The meaning of the event on the same screen

181
Windows event IDs explained in the built-in reference of Windows Event Log Viewer, including 4625; full explanations require a license

 Windows Event Log Viewer Failed sign-in attempts view with 4625 rows, Logon Type, IP, Status and Sub Status columns..

Windows Event Log Viewer
Windows Event Log ViewerRead failed logon reasons in one table on your Windows PC.

How to filter event 4625 in Event Viewer

Open Event Viewer with administrator rights

Press Win+R, type eventvwr.msc and accept the UAC prompt.

Go to Windows Logs and select Security

Expand Windows Logs in the left pane and click Security. On a busy server, wait until the event count at the top stops changing.

Filter the log to 4625 only

Click Filter Current Log in the Actions pane, type 4625 into the Event IDs field and set Logged to Last 24 hours or Last 7 days. Add 4624 after a comma to include successful logons.

 Event Viewer filter dialog with 4625 in the Event IDs field and Logged set to Last 7 days..

Open one failure and find Failure Information

Double-click an Audit Failure entry. On the General tab, scroll past Subject to Account For Which Logon Failed, then to Failure Information with Status and Sub Status.

Read Logon Type and Network Information

Logon Type sits below Subject. Network Information contains Source Network Address and Workstation Name. To copy raw values, switch to the Details tab and pick XML View.

 Event 4625 in Event Viewer showing Account For Which Logon Failed, Failure Information and Network Information..

Windows Event Log Viewer Windows Event Log Viewer

Windows Event Log Viewer & Monitoring Software opens live Windows logs and .evtx files brought from another PC, explains what each Event ID means, and alerts you when a rule you set fires.

How to pull and group EventID 4625 failures with PowerShell

TL;DR

Get-WinEvent reads 4625 from the Security log. With -FilterHashtable, Windows filters the events, keeping queries quick on large logs. Named fields such as IpAddress also work as hashtable keys to filter one address; to rank all addresses, read them from the event XML.

Open PowerShell as administrator. This command returns the latest 200 failures with their time stamps:
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4625} -MaxEvents 200 | Select-Object TimeCreated, Id

Pull IpAddress from each event's XML and count the failures by address. Start investigating at the top of the output.
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4625} | ForEach-Object { ([xml]$_.ToXml()).Event.EventData.Data | Where-Object Name -eq 'IpAddress' | Select-Object -ExpandProperty '#text' } | Group-Object | Sort-Object Count -Descending
To return only a suspect address's events, replace 10.0.0.15 with that IP in this XPath filter:
Get-WinEvent -LogName Security -FilterXPath "*[System[(EventID=4625)] and EventData[Data[@Name='IpAddress']='10.0.0.15']]"

Swap IpAddress for TargetUserName in the query to follow one account. Use PowerShell for scripts and scheduled checks. A table is easier than raw XML when you need to read a few hundred events.

What do the Status and Sub Status codes in event ID 4625 mean?

TL;DR

Status gives the broad reason and Sub Status the precise one. 0xC000006D in Status means the user name or authentication data was bad. Sub Status narrows it down: 0xC000006A means a wrong password, and 0xC0000064 an unknown account.

Microsoft's reference for event 4625 lists these common failure codes:

CodeWhat Windows meansWhat to check first
0xC000006DBad user name or authentication information (generic)Read Sub Status for the specific reason
0xC000006AMisspelled or bad passwordSaved credentials, a service or task with an old password
0xC0000064Misspelled or bad user accountSeveral in a row can mean user name guessing
0xC0000234Account locked outEvent 4740 on the domain controller, then the device that keeps retrying
0xC0000072Account disabled by an administratorWhether the account should still be in use
0xC0000070Logon not allowed from this workstationThe "Log On To" restriction on the account
0xC000015BUser not granted the requested logon typeUser rights such as "Allow log on through Remote Desktop Services"
0xC000005ENo logon servers availableNetwork or domain controller reachability

Sources disagree on 0xC000006D: some pages call it a bad user name; others describe a general failure paired with a more specific Sub Status. Read Sub Status before treating 0xC000006D as "wrong password".
Subject shows the account that requested the logon, often SYSTEM or a service. Look under Account For Which Logon Failed for the user whose attempt failed. Randy Franklin Smith's Security Log encyclopedia explains each field and the full list of failure reasons, from expired passwords to clock skew between the client and domain controller.

What does the logon type tell you in a 4625?

TL;DR

Logon Type shows how the attempt reached the computer. Type 2 is someone at the keyboard, 3 is a network connection such as a shared folder, and 10 is Remote Desktop. Use the number to decide whether to check a person, a server or an exposed RDP port.

Microsoft's table for this event includes more values; these explain most failures:

Logon TypeNameTypical source of a failure
2InteractiveSomeone typing at the console or a local session
3NetworkA mapped drive, shared folder or remote management tool
4BatchA scheduled task running under the account
5ServiceA Windows service set to log on with the account
7UnlockA wrong password typed on a locked workstation
10RemoteInteractiveRemote Desktop or Terminal Services
11CachedInteractiveCached domain credentials used without a domain controller

Type 3 covers anything that authenticates over the network. One laptop with a stale mapped drive can produce failures every few minutes. For successful network logons, use logon type 3 in event 4624 and how to filter it.
Types 4 and 5 almost always point to software retrying with stored credentials.

How to trace the source IP of a 4625 failure

TL;DR

Read Source Network Address and Workstation Name in Network Information, then Caller Process Name. Windows event 4625 is written on the computer where the logon was attempted: a failure against a file server appears in that server's Security log.

Source Network Address is the IP the bad password came from. On a domain network, use it to identify the device and the person or job using it.

  • Copy Source Network Address and Workstation Name from the event
  • Check Logon Type against the table above
  • Read Caller Process Name; winlogon.exe points to an interactive sign-in at the console
  • Check Authentication Package: NTLM or Kerberos tells you which path the credentials took
  • Match the time against 4624 on the same machine to see whether a successful logon followed

If the address belongs to another server, search that server too. Scripts using one service account across machines often leave these chains.

Why is Source Network Address empty or "-" in event code 4625?

TL;DR

Windows does not collect the caller's IP on every code path. Some 4625 events show "-", 0.0.0.0 or a blank Workstation Name. An empty field does not tell you where the attempt started.

The official field reference omits this caveat. A Microsoft Azure Security post on missing source information shows a 4625 with Source Network Address 0.0.0.0 and explains that some Windows code paths do not collect the IP.

Workstation Name may be filled even when the IP is missing. Match failure times against firewall, VPN or RDP gateway logs. Logon Type 3 or 10 with user names absent from your domain points to outside traffic.
On servers with RDP open to the internet, blank events are sometimes linked to Network Level Authentication being off. We have not verified that link. Test it by enabling NLA on one server and checking whether subsequent failures include an address.

Is it a brute-force attack or a mistyped password?

TL;DR

A few failures for one account from a known PC usually mean a person or a stale password. Many user names from one source, or one password tried against many accounts, suggest guessing. Microsoft flags several 0xC0000064 failures in a row as a sign of user name enumeration.

Sort by source and account:

  • Same account, same PC, Sub Status 0xC000006A, a handful per day: a user or saved credential with an old password; fix the credential
  • Same account, failures every few minutes around the clock, Logon Type 3, 4 or 5: stale stored credentials
  • Many user names from one IP, mostly 0xC0000064: user name guessing; block the source and check which port it reached
  • Many real accounts, each failing once or twice from one source: password spraying as MITRE ATT&CK describes it; reset exposed passwords and review lockout settings
  • Logon Type 10 from public addresses: Remote Desktop is reachable from the internet; put it behind a VPN or gateway

A burst of 0xC0000234 afterward means the lockout policy has triggered. It stops guessing on those accounts but also locks out their users. Expect a help desk call for each locked account.

Save the Security log before resetting passwords, rebooting or changing audit settings. Use Save All Events As in Event Viewer and keep the .evtx file. On a busy server, older entries are overwritten as the log fills, erasing the first failures of an attack.

Why does 4625 keep coming back from the same account?

TL;DR

Repeated 4625 events for one user name usually come from software holding an old password. Check scheduled tasks and services, followed by saved network connections and Credential Manager entries. Logon Type tells you where to start.

After a password change, Logon Type 4 points to Task Scheduler, type 5 to a service, and type 3 to a mapped share or another network connection. On the source machine, check tasks and services running as the account, then Credential Manager for saved Windows credentials.
On a workstation, a 4625 with Caller Process Name consent.exe, Logon Type 11 and a NULL SID in Subject usually traces back to an elevation prompt where the cached password did not match. consent.exe handles the UAC prompt. Check local UAC settings before starting incident response.

If an NTLM failure occurs with a password you know is correct, the target may refuse the protocol, such as NTLMv1 after it was disabled. Check Authentication Package before resetting the password again.

Why can't I log in with my domain credentials?

TL;DR

Read Sub Status in the 4625 on the machine you tried. 0xC0000234 means a locked account, 0xC0000072 a disabled account, 0xC000006A a wrong password, and 0xC0000070 a workstation outside the allowed list.

You may be outside the account's allowed logon hours, or its password may have expired. Clock drift between your computer and the domain controller can make Kerberos reject the request. The account may also lack the right to use that logon type, a common reason a regular user cannot access a server through Remote Desktop.

For a locked account, 4740 on the domain controller names the computer that caused the lockout. Check that device for repeated attempts with old credentials, often from a phone or laptop.

How is Windows event ID 4625 different from 4624, 4771 and 4776?

TL;DR

4625 records a failed logon on the target computer; 4624 records a successful one. Domain controllers record Kerberos pre-authentication failures as 4771 and NTLM credential checks as 4776, so a failed domain sign-in can leave records on two machines.

Event IDMeaningWhere it is logged
4624An account was successfully logged onThe computer being accessed
4625An account failed to log onThe computer being accessed
4771Kerberos pre-authentication failedDomain controller
4776The computer attempted to validate the credentials (NTLM)Domain controller, or the local machine for local accounts
4740A user account was locked outDomain controller

2008
The 4625 failed logon record dates from Windows Vista and Windows Server 2008; older systems used separate IDs for failed logons
Source

Correlate by Logon ID and time. A 4625 followed a minute later by a 4624 for the same account indicates a corrected typo. If no 4624 follows a run of failures, investigate the source.

Sources

Windows Event Log Viewer Windows Event Log Viewer
Event ID 4625 means an account failed to log on. Decode Status and Sub Status, read the Logon Type, find the source IP and spot brute-force attempts.
Windows Event Log Viewer Screenshot.


🙋Frequently Asked Questions

It means an account failed to log on. Windows writes it to the Security log of the computer where the attempt happened, with the account name and a Status code that explains the refusal, plus where the attempt came from.

On the machine that refused the sign-in it is 4625, from Windows Vista and Server 2008 onward. Domain controllers add 4771 for Kerberos pre-authentication failures and 4776 for NTLM checks, so look at both when a domain account fails.

4625 records the failed logon. On a domain controller, 4771 includes a Kerberos failure code, 4776 an NTLM error code, and 4740 records a resulting lockout.

Logon type 3 is a network logon. Something reached the computer over the network, for example a shared folder opened from another PC. In a 4625, type 3 with a source IP shows which machine sent the bad credentials.

Read Sub Status in the 4625 on the computer you tried. If it shows a locked account (0xC0000234), look up 4740 on the domain controller: it names the device that keeps sending the old password.

In Local Security Policy, open Advanced Audit Policy Configuration, then Logon/Logoff > Audit Logon, and clear Failure. Domain Group Policy overrides the local setting. Most admins keep auditing on because turning it off removes the record of password-guessing attempts.

Take the account name and source address from 4625. On that machine, check Task Scheduler for tasks running as the account and services.msc for services logging on with it.

Partly. Note Logon Type, Workstation Name and the exact times, then compare them with firewall or VPN logs for the same minutes. If RDP faces the internet without Network Level Authentication, test whether enabling NLA brings the address back.

Yes. Event Viewer filters the Security log by event ID, and Windows Event Log Viewer opens failed sign-ins as a list with the failure codes in their own columns.

You need administrator rights or membership in the Event Log Readers group. Otherwise, every program gets an access error on the Security channel.