As an IT administrator, managing storage capacity is a constant balancing act. Monitoring mailbox sizes in Exchange Online is critical for capacity planning, license optimization, and identifying users who are fast approaching their storage quotas. Keeping an eye on these metrics ensures your organization stays compliant and manages cloud subscription costs effectively.
While the Microsoft 365 Exchange admin center provides basic mailbox size data, it’s often delayed, limited in detail, and difficult to export or automate. For accurate real-time reporting, admins rely on PowerShell, but its raw output usually requires complex custom scripting. This guide breaks down how to extract these metrics using natively supported PowerShell commands, uncovers the challenges behind them, and highlights an easier alternative.
Why Mailbox Size Reporting Matters in Exchange Online
Mailbox storage usage directly impacts both operational efficiency and Microsoft 365 licensing costs. In many environments, mailbox growth happens gradually over time, making it difficult to notice until users begin hitting quota limits or storage-related support tickets start increasing.
Administrators are frequently asked to answer questions such as:
- Which mailboxes are consuming the most storage?
- Which users are approaching their mailbox quota?
- How much deleted item storage is being retained?
- When was a mailbox last accessed?
- Are inactive mailboxes still consuming large amounts of storage?
These questions become even more important in large Microsoft 365 environments where thousands of mailboxes are spread across multiple departments, business units, or geographic regions. Without accurate reporting, storage management becomes reactive rather than proactive.
How to Get Mailbox Size and Statistics in Exchange Online
To get mailbox size and statistics in Exchange Online, use the Exchange Online PowerShell module for granular details or the Microsoft 365/Exchange Admin Center for a high-level overview.
Method 1: Exchange Admin Center
To find the mailbox size and statistics using the Exchange admin center, you can follow the below mentioned steps.
- Sign in to the Exchange admin center.
- In the EAC left navigation menu, click Recipients and select Mailboxes.
- Click on the name of the user whose mailbox size you want to know.
- Go to the General tab to view the current storage consumption and quota percentage under Mailbox Usage.
Method 2: Microsoft 365 Admin Center
If you prefer a visual interface without running commands, you can view storage consumption via the Admin Center.
- Log in to the Microsoft 365 admin center.
- Navigate to Reports > Usage.
- Click on Exchange and select the Mailbox usage tab.
This page displays current storage quotas, warning levels, and consumed sizes. You can export the report to a CSV file from here.
The admin centres do display mailbox size information within the mailbox list view, but the functionality is relatively basic and often insufficient for operational reporting.
One of the biggest frustrations for administrators is that the displayed mailbox size data is not always updated in real time. In some cases, the information can lag behind actual mailbox usage, which creates challenges during troubleshooting or storage audits.
Method 3: Exchange Online PowerShell
PowerShell provides exact metrics for primary and archive mailboxes. Before proceeding further, connect to Exchange Online PowerShell module using Connect-ExchangeOnline cmdlet.
Get overall statistics for a single mailbox:
Get-EXOMailboxStatistics -Identity "user@domain.com" | Select-Object DisplayName, TotalItemSize, ItemCount, LastLogonTime Get all user mailboxes sorted by size:
Get-EXOMailbox -RecipientTypeDetails UserMailbox | Get-EXOMailboxStatistics | Select-Object DisplayName, @{Name="Size(MB)";Expression={$_.TotalItemSize.Value.ToMB()}}, ItemCount | Sort-Object "Size(MB)" -Descending Get specific folder-level stats (such as individual sizes of the Inbox or Sent items):
Get-EXOMailboxFolderStatistics -Identity "user@domain.com" | Select-Object FolderPath, FolderSize, ItemsInFolder Find all mailboxes over the warning threshold:
Get-EXOMailbox -ResultSize Unlimited | Get-EXOMailboxStatistics | Where-Object {$_.StorageLimitStatus -ne "BelowLimit"} | Select-Object DisplayName, TotalItemSize, StorageLimitStatus Find mailboxes within a specific percentage of their limit:
Get-EXOMailbox -ResultSize Unlimited | Get-EXOMailboxStatistics | ForEach-Object {
# Safely convert the native byte value to Gigabytes (GB)
$SizeGB = [Math]::Round(($_.TotalItemSize.Value.ToBytes() / 1GB), 2)
# Filter for users over 45 GB (90% of a standard 50 GB mailbox)
if ($SizeGB -ge 45) {
[PSCustomObject]@{
DisplayName = $_.DisplayName
CurrentSize = "$SizeGB GB"
LimitStatus = $_.StorageLimitStatus
}
}
} | Format-Table -AutoSize However, while PowerShell is powerful, it is not always convenient. Raw PowerShell output is often difficult to read, mailbox sizes are not always formatted cleanly, and administrators usually end up writing additional scripts to transform the data into something suitable for operational reporting or management review.
A Faster Way to View Mailbox Storage in Microsoft 365: EasyEntra
If you want to escape the overhead of writing, updating, and debugging script repositories just to track down storage consumers, EasyEntra provides a clean, native UI alternative.
Instead of relying on PowerShell scripts, administrators can navigate to the User properties panel, open the Mailbox tab, and click Mailbox Storage to instantly view:
- Current mailbox size
- Storage quota limits
- Mailbox usage information
This provides a much faster way to identify users approaching their mailbox limits without switching between PowerShell sessions, CSV exports, and Exchange administration portals.
For many administrators, the biggest advantage is operational simplicity. Routine mailbox storage checks become visual, accessible, and significantly easier to manage. But, managing mailboxes in Microsoft 365 often requires administrators to switch between multiple tools, including the Exchange Admin Center, Exchange Online PowerShell, Microsoft 365 Admin Center, CSV exports, and hybrid sync infrastructure. Even simple mailbox reporting tasks can involve several manual steps and scripts. By centralising mailbox visibility into a single interface, EasyEntra helps simplify administration and reduce operational complexity in Exchange Online environments.