Find Expired Accounts in Active Directory using Powershell


Hello All,

You must have seen my previous article where we saw how to find empty groups in Active Directory using Powershell. Continuing on the same front, we will now see how to find Expired Accounts in Active Directory using Powershell.

We all know, people join organizations and leave organizations at regular intervals. And we as System Administrators have to create and manage their user accounts in Active Directory.

As a best practice, we all set an expiration date to the user account that is created. But do we delete those accounts if they are no longer in use? Its hard to tell based on the company’s policies and procedures. Therefore, today we will see how to find the expired accounts in the domain and you can do the same in your organization.

We will be using Search-ADAccount cmdlet to perform this activity. You can do Get-Help Search-ADAccount to get more information and use cases of the cmdlet.

Find Expired Accounts in Active Directory using Powershell

Now type the below on your screen.

Import-Module ActiveDirectory
Search-ADAccount -AccountExpired | select Name, samAccountName, ObjectClass, AccountExpirationDate, lastLogonDate | Export-Csv c:\ExpiredAccounts.csv

Let us see what we did here.

First we used the Search-ADAccount cmdlet with one of its parameters AccountExpired which will search for all the expired accounts in the domain.

Next we are selecting Name, samAccountName and the ObjectClass of the account, the Account Expiration Date and the Last Logon time. The ObjectClass can be a user or a computer.

After which we are exporting the result to a csv file with the help of the Export-Csv cmdlet.

If you want to select only the User Accounts then we can select the parameter UsersOnly along with the Search-ADAccount cmdlet to find the same.

Similarly we can use ComputersOnly parameter to see for computer accounts.

If you are using User Accounts only then you can find out what are the properties avilable to export with the help of Get-Member cmdlet. See below for example.

Find Expired Accounts in Active Directory using Powershell

Feel free to test the various options available at your disposal and leave the comments below so that others can find it useful.

I hope this was informative and thank you for reading!


About Author

I am Adil Arif, working as a Senior Technical Support Engineer at Rubrik as well as an independent blogger and founder of Enterprise Daddy. In my current role, I am supporting infrastructure related to Windows and VMware datacenters.


  1. Hi Adil Arif,
    I am from Bangalore do you teach exchange server and vmware on weekends. Please let me know about it.

Leave A Reply