This PowerShell script identifies which shared mailboxes a user can access in Exchange Online.
It checks for the following permissions:
- Full Access
- Send As
- Send on Behalf
It displays the results on screen once and exports them to: SharedMailboxAccess__.csv in the same folder where the script is located.
- Checks all shared mailboxes in the tenant
- Identifies Full Access permissions
- Identifies Send As permissions
- Identifies Send on Behalf permissions
- Clean and structured output
- Simple and reusable script
- Exchange Online PowerShell module
- Active Exchange Online session
- Appropriate permissions to read mailbox delegation settings
Before running the script:
Connect-ExchangeOnlineSet-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
.\Get-SharedMailboxAccess.ps1 -UserEmail user@company.comSharedMailbox FullAccess SendAs SendOnBehalf
------------- ---------- ------ ------------
finance@company.com True False True
support@company.com True True False
info@company.com False True False
This script is read-only It does not modify any Exchange configuration Results depend on your current Exchange Online administrative permissions In some environments, Send on Behalf values may be stored as recipient names or aliases rather than SMTP addresses