Script to get Mailbox Information

I was deploying archiving solution for Exchange 2010 for more than 20K seats environment. And I have been asked by the vendor to find certain information for all the Mailboxes in exchange environment, like TotalItemSize, TotalDeletedItemSize, ItemCount and DeletedItemCount.

I came up with the below script which made the JOB easy. I ran the script per Exchange Server, but you can also run it per Mailbox Database, you just need to change the switch from -Server to -Database.

Get-Mailbox -Server “MailboxServerName” -ResultSize Unlimited -IgnoreDefaultScope -RecipientTypeDetails UserMailbox,RoomMailbox,EquipmentMailbox,SharedMailbox | Get-MailboxStatistics | Select DisplayName,@{expression={$_.TotalItemSize.value.ToMB()};label=”TotalItemSize(MB)”},@{expression={$_.TotalDeletedItemSize.Value.ToMB()};Label=”TotalDeletedItemSize(MB)”},ItemCount,DeletedItemCount,Database,OrganizationalUnit | Export-Csv C:tempContent.csv

If you want to run it across your Exchange environment without using Server or Database switch, then just run Get-Mailbox only.
You can also add other attributes like SentItems, Attachment etc. to the script.
This script can be run on Exchange Server 2010 and 2013.


About the Author

Gulab Prasad

Technology Consultant & Blogger

MCSE: Exchange Server 2016, 2013
MCSE: Skype for Business Server 2015
MCSE: Azure Productivity
MCSE: Windows Server 2016
MCSA: Windows Server 2012, Office 365
MCITP: Exchange Server 2010-2007 | Lync Server 2010
VMware: vSphere 6 Foundations