To check the size of each mailbox in Microsoft Exchange or Office 365 using PowerShell, follow these steps:
1. Open PowerShell as Administrator
For Office 365, you’ll need to use the Exchange Online PowerShell module.
2. Connect to Exchange Online (Office 365)
Use the following commands to connect to Office 365:
powershellCopy code$UserCredential = Get-Credential
Connect-ExchangeOnline -UserPrincipalName $UserCredential.UserName -ShowProgress $true
If you’re using an on-premises Exchange server, skip this step and proceed with the next.
3. Run PowerShell Commands to Check Mailbox Size
After connecting, use one of the following commands depending on what information you need.
3.1 Check Mailbox Size for All Users
This command will list the mailbox sizes for all users:
powershellCopy codeGet-Mailbox -ResultSize Unlimited | Get-MailboxStatistics | Select DisplayName, TotalItemSize, ItemCount | Sort-Object TotalItemSize -Descending
DisplayName
: Shows the mailbox owner’s name.TotalItemSize
: Displays the size of the mailbox.ItemCount
: Shows the number of items in the mailbox.
3.2 Check Mailbox Size for a Specific User
To check the mailbox size for a specific user, use their email address:
powershellCopy codeGet-MailboxStatistics -Identity "user@example.com" | Select DisplayName, TotalItemSize, ItemCount
Replace user@example.com
with the user’s actual email address.
3.3 Export Mailbox Size to CSV
If you want to export the results to a CSV file for further analysis, use the following command:
powershellCopy codeGet-Mailbox -ResultSize Unlimited | Get-MailboxStatistics | Select DisplayName, TotalItemSize, ItemCount | Sort-Object TotalItemSize -Descending | Export-Csv -Path "C:\MailboxSizeReport.csv" -NoTypeInformation
This will generate a CSV file (MailboxSizeReport.csv
) in the specified directory.
4. Disconnect from Exchange Online
Once you’ve finished, disconnect from Exchange Online:
powershellCopy codeDisconnect-ExchangeOnline -Confirm:$false
Additional Notes:
- If you’re using on-premises Exchange, you don’t need to connect to Exchange Online; simply open PowerShell on the Exchange server and use the same
Get-MailboxStatistics
cmdlet. - You can modify the script to filter by date, mailbox database, or other attributes depending on your needs.