• Home
  • PowerShell
  • Using PowerShell to find bad password attempts in Active Directory

Using PowerShell to find bad password attempts in Active Directory

Step 1: Retrieve users with bad password attempts

Run the script below to list the users with recent failed login attempts. This will list all accounts that are currently locked due to too many failed login attempts.

Search-ADAccount -LockedOut | Select-Object Name, SamAccountName, LockedOut

Step 2: Check failed login attempts in event logs

Use event logs to find users with repeated incorrect passwords. Here, event ID 4625 indicates a failed login attempt. The output includes timestamps and detailed messages.

Get-WinEvent -LogName Security | Where-Object { $_.Id -eq 4625 } | Select-Object TimeCreated, Message

Step 3: Generate a report of bad logins

Export failed login attempts to a CSV file for auditing. The script below creates a CSV report of all failed login attempts.

$FailedLogins = Get-WinEvent -LogName Security | Where-Object { $_.Id -eq 4625 }
$FailedLogins | Select-Object TimeCreated, Message | Export-Csv -Path "C:\Reports\FailedLogins.csv" -NoTypeInformation

Step 4: Notify the security team

Send an email alert if bad login attempts exceed a threshold. The script below will ensure IT security is alerted if more than 5 failed attempts occur within an hour.

$failedAttempts = (Get-WinEvent -LogName Security | Where-Object { $_.Id -eq 4625 }).Count

if ($failedAttempts -gt 5) {
Send-MailMessage -To "security@yourdomain.com" -From "admin@yourdomain.com" -Subject "Alert: Excessive Failed Login Attempts" -Body "More than 5 failed login attempts detected in the last hour."
}

FAQs

1. How do I check failed login attempts in AD?

Use event logs to check failed login attempts in AD by running the script below:

Get-EventLog -LogName Security -InstanceId 4625

2. Can I track failed logins for a specific user?

Yes, you can track failed logins for a specific user by running the script below:

Get-EventLog -LogName Security -InstanceId 4625 | Where-Object {$_.Message -match "username"}

3. How can I lock accounts after multiple failed attempts?

Use Account Lockout Policy settings in AD to lock accounts after multiple failed attempts.

 
  • Step 1: Retrieve users with bad password attempts
  • Step 2: Check failed login attempts in event logs
  • Step 3: Generate a report of bad logins
  • Step 4: Notify the security team
  • FAQs

ADSelfService Plus trusted by

A single pane of glass for complete self service password management
Email Download Link