Photo by Sushobhan Badhai / Unsplash

The 100 GB mailbox rollout: how to find the mailboxes that missed it

Bastien Perez
Bastien Perez
· 4 min read

Table of Contents

No matching heading

If you manage Microsoft 365 Business tenants, you probably saw the news: Microsoft increased the primary mailbox from 50 GB to 100 GB for Business Basic, Business Standard and Business Premium. The rollout happened between June and September 2026.

Good news, and for most mailboxes it just worked. But on several tenants I checked, some mailboxes are still at 50 GB, and nothing in the admin center tells you which ones. So I wrote a report to find them.

It ended up doing more than that: it compares the quota of every mailbox with what its licenses actually entitle it to, so it also catches the inconsistencies that have nothing to do with this migration. More on that below.

The 100 GB is not a value, it is two service plans

This is the part you need to understand, everything else comes from it.

The extra 50 GB is not written on the mailbox. It comes from a second service plan inside the license:

  • BPOSSSTANDARD: the Exchange plan of the Business suites, it gives 50 GB
  • EXCHANGESTORAGE50GB: the new plan, it gives the other 50 GB

Both must be enabled on the user. If the second one is unchecked in the license options (and it happens more often than you would think, especially on tenants where licenses are assigned by group or by script), the mailbox stays at 50 GB. The license is assigned, the mailbox works, and nothing tells you the user is missing half of the storage you are paying for.

Three behaviours are worth knowing:

  • Quotas are not additive. A user with a Business suite and an Exchange Online Plan 2 does not get 150 GB. Exchange takes the highest entitlement from a single product, so the ceiling stays 100 GB.
  • Your custom quotas are kept. If you set a mailbox to 30 GB three years ago, it is still 30 GB today. Microsoft does not overwrite an admin decision, which is the right behaviour. But it also means an old decision is now capping a user who is entitled to more than three times that.
  • The archive does not move. This change is about the primary mailbox only.

The check everyone does, and why it is not enough

The usual command:

Get-Mailbox [email protected] | Format-List *Quota*

It tells you what the quota is. It does not tell you what the quota should be, because the entitlement lives in the licenses, and Exchange does not read them.

A mailbox at 50 GB is perfectly fine for an Exchange Online Plan 1 user, and a problem for a Business Standard one. To tell the difference you need to know whether the user has EXCHANGESTORAGE50GB enabled, and that information is in Microsoft Graph, not in Exchange.

One more thing while you are looking at quotas: the Microsoft 365 admin center displays ProhibitSendQuota, but the value that actually caps the mailbox is ProhibitSendReceiveQuota. They are not the same number, and I have seen people conclude that everything was fine by reading the wrong one.

The solution: Get-ExMailboxQuotaInfo

I added this function to PS365, my PowerShell module for Microsoft 365 administration. It reads the effective quotas from Exchange Online, the assigned licenses and enabled service plans from Microsoft Graph, then computes what each mailbox is entitled to and compares it with what it actually has. One line per mailbox, and a column that tells you what is wrong.

And to be clear: the 100 GB story is what pushed me to write it, but the function is not limited to that. It compares licenses against quotas for every mailbox of the tenant, whatever the license:

  • an Exchange Online Plan 2 user stuck at 50 GB because of a custom quota set years ago
  • a Plan 1 user sitting at 100 GB because the license was downgraded and the quota stayed
  • a kiosk user (2 GB entitlement) with a quota that has nothing to do with it
  • a shared, room or equipment mailbox, which is entitled to 50 GB with no license at all
  • a user mailbox with no Exchange plan left after a license removal

These are the inconsistencies nobody looks for, because nothing breaks. The user only finds out the day the mailbox fills up, or the day you get asked why one person can keep ten years of email and their colleague on the same license cannot.

Install-Module PS365 -Scope CurrentUser
Import-Module PS365

# All the mailboxes of the tenant
Get-ExMailboxQuotaInfo

# Only the mailboxes that do not match their entitlement
Get-ExMailboxQuotaInfo -OnlyIssues

# With the current size and the usage percentage
Get-ExMailboxQuotaInfo -IncludeUsage

# For one user
Get-ExMailboxQuotaInfo -Identity [email protected]

# Export to Excel
Get-ExMailboxQuotaInfo -OnlyIssues -ExportToExcel

The function is read only: it needs the User.Read.All and Organization.Read.All Graph scopes plus an Exchange Online session, and it does not change anything in your tenant.

Reading the results

An empty Issue column means the mailbox was checked and everything is consistent. If a mailbox could not be evaluated, it is flagged too, so you never mistake "not checked" for "fine".

  • StorageAddOnNotProvisioned: the user has a Business suite but EXCHANGESTORAGE50GB is not enabled. This is the one that costs you storage you already paid for. Re-enable the service plan in the license options.
  • QuotaBelowEntitlement: the add-on is there, but the quota is still below the entitlement. In practice, this is almost always an old custom quota. Up to you to remove it or keep it on purpose.
  • QuotaAboveEntitlement: the mailbox has more than its licenses give it. Nobody is blocked, so it is informational, but it is good to know before someone changes a license and wonders why a mailbox suddenly shrank. I have seen mailboxes at 150 GB with the warning quota still at 98 GB.
  • EntitlementUnknown: the user has an Exchange service plan my map does not know yet. The row is not evaluated, and it says so instead of pretending everything is fine. The plan name is in the message, send it to me and I will add it.
  • NoExchangeLicense: a user mailbox with no Exchange plan at all. Usually a leftover after a license removal, and worth a look for other reasons.

My advice

Run it with -OnlyIssues on your tenants. In most cases the list is short, and for the 100 GB part the fix is a checkbox in the license options.

Then run it again after any licensing change. A mailbox that was fine in June can be back under its entitlement in October because someone reassigned a license, and you will get no alert for that.

Sources

Enjoyed this article?
If you found it useful, consider supporting my work with a small tip.
Buy me a coffee
Microsoft 365

Bastien Perez

Microsoft 365 and Active Directory Consultant | 3x MVP Identity and Access & MVP M365 | Clidsys founder

Comments