Administrator supporting large Exchange environment also require managing Exchange users who come and go frequently. In that case, it’s likely that they may end up managing multiple inactive mailboxes, and the list of such inactive users accrues over a period of time. In this article, we will share the techniques to find an inactive mailbox in the Exchange server environment.
Why mailboxes become inactive in Exchange database
- Mailboxes are marked as inactive when they are not accessed for a long time. Outlook users do not access their mailbox for more than the specified time period.
- In some organizations, mailboxes are marked as inactive when a user doesn’t send emails for a long period, say more than 90 days. Sent items are used as a differentiator as mailboxes are scanned by the AV/Management tool that changes the logon date of all mailboxes. The problem is management tools don’t go by access date. The script identifies a mailbox based upon ‘Sent Items.’
- Error in Exchange database such as ‘Jet Engine Error’, ‘Dirty Shutdown Error’, etc., can cause corruption issues which may lead to corruption in a single mailbox or the entire database.
Why there’s a need to find inactive mailboxes?
- To segregate inactive mailboxes from disabled or deleted mailboxes
- To search for any corruption in mailbox which may pose bigger problem
- To identify if users are facing issues in accessing Outlook account
How to find inactive mailbox in Exchange server environment?
Run Get-Mailbox script to find an inactive mailbox. The following script will help in accessing inactive mailboxes:
As you can see, this script helps in retrieving all mailboxes in Mailbox and also retrieves mailboxes that specify LastLogonTime property. The ‘$null’ value indicates that these mailboxes are never used and have been created only recently. The next part of the filter compares value for LastLogonTime. In case the value is less than or equal to 90 days before, then the mailbox will appear.
Features of Get-Mailbox script:
- This script includes easy-to-use function
- It can specify multiple parameters – Server details, idle days, file path, Exchange database, HUB server parameters and more.
- Server and database parameters are not specified in a single script.
- Output can be stored in a specified format say CSV-file, if required.
If the script results in a large number of mailboxes, import these mailboxes to a CSV file and open it in Excel. You can also sort the mailboxes by date-field. To extract output in CSV, add Export-CSV and file path:
Get-mailbox -resultsize unlimited| Get-MailboxStatistics | select displayname,lastlogontime|Export-Csv C:\Files\test.csv
Filter disabled user accounts from the available list to segregate inactive mailboxes in the Exchange server environment.
In case, mailboxes become inactive due to corruption in the Exchange mailbox, it is necessary to repair the Exchange database with the help of PowerShell script. However, running the PowerShell script means an administrator must be a member of the Exchange Administration Center and must have knowledge about the type of corruption in that user account.
Moreover, if it is a case of corruption in multiple mailboxes, then PowerShell script must be run as many times as the number of mailboxes, and each script must specify the type of corruption. The script should also specify the folder where the Exchange mailbox is located. Alternatively, use Stellar Repair for Exchange to avoid such complications and convert inactive mailboxes caused due to mailbox corruption into active mailboxes.
Ex-employees and inactive users create inactive mailboxes in an Exchange server environment. While ex-employees’ mailbox information is available with Exchange administrators, it is practically not possible to check inactive user mailboxes in a large Exchange server environment. One option is to check all mailboxes manually, but manual testing is not a feasible solution.
Exchange Administration Center or EAC has a set procedure to purge the deleted mailboxes, automatically from the Exchange database, once their retention period is over. But there is no set procedure on the Exchange server to identify inactive mailboxes.
Using the Get-Mailbox script helps in getting the inactive mailboxes. Also, it is necessary to find the reason for inactive mailboxes, as a mailbox may become inactive due to corruption issues. Exchange mailbox-corruption issues can be resolved by using PowerShell commands or Exchange Server database recovery software.