Skip to main content

Get-ExMailboxQuotaInfo

SYNOPSIS

Reports the effective mailbox quota of each user against the storage their licenses entitle them to, including the new 100 GB entitlement of the Microsoft 365 Business suites.

SYNTAX

DESCRIPTION

Since the 2026 Microsoft 365 packaging updates (rolled out June-September 2026), Business Basic, Business Standard and Business Premium include an additional 50 GB of primary mailbox storage, bringing the entitlement from 50 GB to 100 GB. The increase is delivered through a dedicated service plan: the Business Exchange plan (BPOS_S_STANDARD) grants 50 GB, and the add-on plan EXCHANGE_STORAGE_50GB adds the other 50 GB. Both must be enabled for the mailbox to reach 100 GB. This function crosses two sources, one row per mailbox:
  • Exchange Online: the effective quotas (IssueWarningQuota, ProhibitSendQuota, ProhibitSendReceiveQuota)
  • Microsoft Graph: the assigned SKUs and the enabled Exchange service plans of the user
It computes the expected maximum quota of EVERY mailbox from the licenses (100 GB for Exchange Online Plan 2 or a Business suite with the storage add-on, 50 GB for Plan 1 alone or a license-free shared/room/equipment mailbox, 2 GB for Kiosk) and flags the gaps in the Issue column. A mailbox that cannot be evaluated is flagged too, so an empty Issue always means ‘evaluated and consistent’:
  • StorageAddOnNotProvisioned: Business suite license but the EXCHANGE_STORAGE_50GB plan is not enabled (disabled in the license options, or provisioning not completed yet)
  • QuotaBelowEntitlement: the add-on is there but ProhibitSendReceiveQuota is still below the entitlement (custom quota set by an administrator, preserved by design, or provisioning pending)
  • QuotaAboveEntitlement: ProhibitSendReceiveQuota exceeds what the current licenses entitle the user to (backfill applied on top of an already raised quota, or a 100 GB license since removed). Informational: the mailbox has more than its entitlement, not less
  • EntitlementUnknown (<plans>): the user holds an Exchange service plan whose quota is not in the internal map: the row is NOT evaluated (report it so the map can be extended)
  • NoExchangeLicense: user mailbox without any Exchange service plan
Quotas are never additive across products: a user holding both a Business suite and an Enterprise plan is entitled to 100 GB, not 150. Custom quotas set by an administrator are preserved by the rollout, which is exactly what this report surfaces. The increase concerns the primary mailbox only (no archive change).

EXAMPLES

EXAMPLE 1

Quotas versus license entitlement for every user, shared, room and equipment mailbox of the tenant.

EXAMPLE 2

Only the mailboxes whose quota does not match what the licenses entitle them to (Business suite without the +50 GB add-on, or quota still below the entitlement).

EXAMPLE 3

The report for a single user.

EXAMPLE 4

Same report with the current size of each mailbox and its usage percentage.

EXAMPLE 5

Exports the report to an Excel file in the user’s profile directory.

PARAMETERS

-ExportPath

(Optional) Output directory for the Excel export. Defaults to the user profile.

-ExportToExcel

(Optional) If specified, exports the results to an Excel file in the user’s profile directory.

-ForceNewToken

Switch parameter to force getting a new token from Microsoft Graph.

-Identity

(Optional) One or more user principal names. When omitted, every user, shared, room and equipment mailbox of the tenant is evaluated.

-IncludeUsage

(Optional) Also retrieves the current mailbox usage (Get-EXOMailboxStatistics): columns TotalItemSize, TotalItemSizeGB and UsagePercent (against ProhibitSendReceiveQuota). One extra call per mailbox: noticeably slower on large tenants.

-OnlyIssues

(Optional) Returns only the mailboxes with a non-empty Issue column.

CommonParameters

This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction, and -WarningVariable. For more information, see about_CommonParameters.

INPUTS

System.String[]

Not documented.

OUTPUTS

System.Collections.Generic.List[PSCustomObject]

Not documented.

System.Collections.Generic.List`1[[System.Management.Automation.PSObject, System.Management.Automation, Version=7.5.0.500, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]

Not documented.

NOTES

OUTPUT PROPERTIES
  • UserPrincipalName : the mailbox owner
  • DisplayName : display name of the mailbox
  • RecipientTypeDetails : UserMailbox, SharedMailbox…
  • ProhibitSendQuota : effective send quota reported by Exchange
  • ProhibitSendReceiveQuota : effective maximum size reported by Exchange
  • IssueWarningQuota : warning threshold reported by Exchange
  • UseDatabaseQuotaDefaults : whether the database defaults apply
  • TotalItemSize : current mailbox size (with -IncludeUsage, empty otherwise)
  • TotalItemSizeGB : current mailbox size in GB (with -IncludeUsage)
  • UsagePercent : TotalItemSizeGB / ProhibitSendReceiveQuota (with -IncludeUsage)
  • LicenseLookupStatus : Success or UserNotFoundInGraph
  • Licenses : SKU part numbers assigned to the user, or None
  • ExchangeServicePlans : enabled Exchange service plans (BPOS_S_STANDARD, EXCHANGE_STORAGE_50GB…), or None
  • HasBusinessSuite : the user holds Business Basic, Business Standard or Business Premium
  • HasStorageAddOn : the EXCHANGE_STORAGE_50GB service plan is enabled
  • ExpectedMaxQuotaGB : maximum quota the licenses entitle the user to (empty when unknown)
  • Issue : StorageAddOnNotProvisioned, QuotaBelowEntitlement, QuotaAboveEntitlement, EntitlementUnknown, NoExchangeLicense, or empty (evaluated and consistent)
Required Microsoft Graph permissions:
  • User.Read.All
  • Organization.Read.All
Requires an Exchange Online connection (Connect-ExchangeOnline is called when none exists). Mailboxes are retrieved with Get-EXOMailbox (REST) for performance on large tenants. Reference: https://techcommunity.microsoft.com/blog/exchange/understanding-the-new-100-gb-mailbox-entitlement-for-microsoft-365-business-suit/4548243 Version history: 1.0 - Creation. Crosses Exchange quotas with Graph service plans to check the 100 GB Business suites entitlement (BPOS_S_STANDARD + EXCHANGE_STORAGE_50GB), flags the missing add-on and the quotas below entitlement (custom quotas are preserved by the rollout by design).