How do I search Active Directory for locked-out accounts using PowerShell?
Most organizations set Active Directory Account Lockout Policy to a maximum number of three to five logon attempts. Once the threshold has been exceeded, users either need to call the helpdesk to have their account unlocked, or wait 30 minutes for the account to be unlocked automatically. While it's a necessary best practice to defend against brute force password attacks on Active Directory, account lockout policy sometimes leads users to accidentally lock themselves out, generating extra work for the help desk.
It can be useful to search Active Directory for locked-out accounts, maybe to investigate potential security issues or preempt a helpdesk call. The easiest way to run a search is from the command line using PowerShell.
Search Active Directory for Locked-Out Accounts
If you’ve never worked with PowerShell before, the Search cmdlet is a good place to begin. The cmdlet is quite simple and can be useful when you need to generate reports.
- Logon to Windows Server 2012 with a user that has permission to enumerate Active Directory accounts.
- Open PowerShell by clicking the blue PowerShell icon on the desktop Taskbar.
- Type Search-ADAccount –LockedOut and press Enter.
If there are any locked-out accounts in your Active Directory domain, the results should now be listed in the PowerShell window.
Before you can run PowerShell Active Directory cmdlets on Windows Server 2008 (or R2), you have to import the Active Directory PowerShell module. To import the module, type Import-module ActiveDirectory and press Enter in the PowerShell window. The import process happens automatically in Windows Server 2012 when you run an Active Directory cmdlet.
Unlock Locked-Out Active Directory Accounts
You can also choose to automatically unlock any accounts that the Search cmdlet returns by piping the results from Search to the Unlock cmdlet as shown below.
- Type Search-ADAccount –LockedOut in the PowerShell window to see if you have any locked-out accounts in your Active Directory domain. For the purposes of demonstrating the command below, you’ll need at least one locked-out account.
- Type the following command: Search-ADAccount –LockedOut | Unlock-ADAccount
- Now run Search-ADAccount –LockedOut without the Unlock cmdlet. The Search cmdlet should return no results.