Exchange.ManageAsApp
User.Read.All
Organization.Read.All
— application permissions, granted to the app registration with admin consent.
Endpoints:
Get-EXOMailbox -RecipientTypeDetails SharedMailbox · Get-EXOMailboxStatistics (per shared mailbox) · GET /v1.0/users (assignedLicenses) · GET /v1.0/subscribedSkus
If a permission is missing, this report shows a red load error with the Graph status code — not an empty table.
Shared Mailboxes Needing a Licence
Shared mailboxes are free - until they grow past 50 GB, get an archive, or are placed on litigation or retention hold. Then they need an Exchange Online licence. Unlicensed ones out of those limits are a compliance gap; licensed ones that no longer need it are money to reclaim.