Support
 
PhoneGet Quote
 
Support
 
US Sales: +1 888 720 9500
US Support: +1 844 245 1108
Intl: +1 925 924 9500
Aus: +1 800 631 268
UK: 0800 028 6590
CN: +86 400 660 8680

Direct Inward Dialing: +1 408 916 9890

 
 

How to get shared mailbox permissions in Office 365

Last updated on:

Shared mailboxes are vital for team collaboration, but they can easily become a security risk. Without clear visibility into who has access to what, sensitive information in a shared mailbox could be exposed to unauthorized users, leading to data breaches and compliance failures. Knowing exactly who holds Full Access, Send As, or specific folder-level permissions is critical.

Exporting a shared mailbox permissions report allows you to audit access rights, ensure the principle of least privilege is being followed, and provide clear documentation for compliance checks. With a clear list, you can filter, share, and manage permissions effectively to secure your organization's data.

  • Exchange Online
  • Graph PowerShell
  • M365 Manager Plus
 

Method 1: How to view shared mailbox permissions using the Exchange admin center

Prerequisites

You have the Exchange Administrator role assigned.

Steps

  1. Sign in to the Exchange admin center and navigate to Recipients > Mailboxes.
  2. Select a shared mailbox from the list.
  3. In the details pane that opens, select the Delegation tab.
  4. Here, you can view users with Send As, Send on Behalf, and Full Access permissions.
  5. The Exchange admin center's shared mailbox details pane, with the Delegation tab showing the Send as, Send on behalf, and Read and manage (Full Access) permissions.

Limitations to consider

  • The Exchange admin center does not provide a way to export the list of users who are assigned these shared mailbox permissions.
  • You will have to click through each mailbox individually to get the list of users who are assigned shared mailbox permissions.

To do either of these, you will have to use Exchange Online PowerShell or a Microsoft 365 reporting tool such as M365 Manager Plus.

Method 2: How to get a list of shared mailboxes using Exchange Online PowerShell (Get-EXOMailbox)

Prerequisites

Before using Exchange Online PowerShell, please verify that:

  1. The Exchange Administrator or Global Administrator role is applied to the account you use to sign in to Exchange Online PowerShell.
  2. You are connected to the Exchange Online module
    1. To check if the ExchangeOnlineManagement PowerShell module is installed. use this script:
    2. Install-Module ExchangeOnlineManagement -Scope CurrentUser
      Update-Module ExchangeOnlineManagement
    3. Connect to Exchange Online PowerShell with this script:
    4. Connect-ExchangeOnline

Use Get-Mailbox to export Microsoft 365 shared mailbox permissions

The Get-Mailbox cmdlet allows you to retrieve all permission types such as Full Access, Send As, and Send on Behalf for all shared mailboxes at once, and export the data for auditing and review.

Each permission type has its own syntax requirements. Below are the cmdlets to list mailboxes delegated with these permissions.

Full access:

Get-Mailbox |?{$_.RecipientTypeDetails -eq "<identity> "} | Get-MailboxPermission|?{$_.User -ne 'nt authority./self'} |Select-Object Identity,User,AccessRights

Send as:

Get-Mailbox |?{$_.RecipientTypeDetails -eq "<identity>"} | Get-RecipientPermission | where {($_.Trustee -ne 'nt authority./self') -and ($_.Trustee -ne 'Null sid')} | select Identity,Trustee,AccessRights

Send on behalf:

Get-Mailbox |?{$_.RecipientTypeDetails -eq "<identity>" -and $_.GrantSendOnBehalfTo -ne $null }| Select PrimarySmtpAddress,GrantSendOnBehalfTo,RecipientTypeDetails

To view the current settings for a user, use the Get-MailboxAutoReplyConfiguration cmdlet.

Supported parameters

The following table contains parameters that can be used with the Get-Mailbox cmdlet to provide details on your shared mailbox permissions.

Parameter Description
Identity The mailbox the permission applies to (display name or SMTP).
User Principal granted FullAccess (from Get-EXOMailboxPermission).
Trustee Principal granted SendAs (from Get-EXORecipientPermission).
AccessRights The rights granted (e.g., FullAccess, SendAs).
IsInherited Whether the ACE is inherited; explicit permissions should be False.
Deny Indicates a deny ACE; typically filtered out in reports.
DisplayName Friendly name of the mailbox or grantee (resolved via Get-Recipient where needed).
PrimarySmtpAddress Primary email address of the mailbox or grantee (resolved via Get-Recipient).
RecipientType / RecipientTypeDetails Type of grantee (e.g., UserMailbox, MailUser, Group) for context in audits.
GrantSendOnBehalfTo Mailbox property listing SoB delegates; resolve each to DisplayName/SMTP with Get-Recipient.
RecipientTypeDetails=SharedMailbox Common filter used with Get-EXOMailbox to scope to shared mailboxes.
ResultSize Use -ResultSize Unlimited with Get-EXOMailbox when enumerating all shared mailboxes.

An example use case: Export Microsoft 365 shared mailbox permissions to CSV

For organization-wide audits, it’s often necessary to export all shared mailbox permissions to ensure access is appropriate.

This script exports a list of users with permissions on shared mailboxes in your organization into a single CSV file, for periodic reviews or compliance checks.

              $timestamp = Get-Date -Format 'yyyyMMdd-HHmmss'
$outPath = "C:\Reports\SharedMailboxPermissions-$timestamp.csv"
$newline = [Environment]::NewLine
$shared = Get-Mailbox -ResultSize Unlimited |
Where-Object { $_.RecipientTypeDetails -eq 'SharedMailbox' }
# --- Full Access ---
$fa = Get-MailboxPermission -Identity $mailboxId |
Where-Object {
-not $_.IsInherited -and
-not $_.Deny -and
($_.AccessRights -contains 'FullAccess') -and
($_.User -notmatch 'NT AUTHORITY\\SELF|S-1-5-|ANONYMOUS LOGON')
} |
ForEach-Object {
[pscustomobject]@{
MailboxPrimarySmtpAddress = $mailboxId
MailboxDisplayName = $mailboxName
PermissionType = 'FullAccess'
Grantee = $_.User.ToString()
GranteePrimarySmtpAddress = $null
AccessRights = ($_.AccessRights -join ',')
Inherited = $_.IsInherited
Deny = $_.Deny
}
}
# --- Send As ---
$sa = Get-RecipientPermission -Identity $mailboxId |
Where-Object {
-not $_.IsInherited -and
($_.AccessRights -contains 'SendAs') -and
($_.Trustee -notmatch 'NT AUTHORITY\\SELF|S-1-5-|NULL SID')
} |
ForEach-Object {
[pscustomobject]@{
MailboxPrimarySmtpAddress = $mailboxId
MailboxDisplayName = $mailboxName
PermissionType = 'SendAs'
Grantee = $_.Trustee.ToString()
GranteePrimarySmtpAddress = $null
AccessRights = ($_.AccessRights -join ',')
Inherited = $_.IsInherited
Deny = $false
}
}
# --- Send on Behalf ---
$sob = @()
if ($m.GrantSendOnBehalfTo) {
foreach ($u in $m.GrantSendOnBehalfTo) {
$rec = Get-Recipient $u -ErrorAction SilentlyContinue
if ($rec) {
$sob += [pscustomobject]@{
MailboxPrimarySmtpAddress = $mailboxId
MailboxDisplayName = $mailboxName
PermissionType = 'SendOnBehalf'
Grantee = $rec.DisplayName
GranteePrimarySmtpAddress = $rec.PrimarySmtpAddress
AccessRights = 'SendOnBehalf'
Inherited = $false
Deny = $false
}
}
}
}
$fa + $sa + $sob
}
# Ensure output folder exists
$folder = Split-Path $outPath -Parent
if (-not (Test-Path $folder)) { New-Item -ItemType Directory -Path $folder | Out-Null }
$results | Sort-Object MailboxPrimarySmtpAddress, PermissionType, Grantee |
Export-Csv -Path $outPath -NoTypeInformation -Encoding UTF8

 

"Permissions report successfully saved to: $outPath

Method 3: How to export Microsoft 365 shared mailbox permissions using M365 Manager Plus

  1. Log in to M365 Manager Plus and click the Reports tab.
  2. Navigate to Exchange Online > Other Exchange Reports, and select the Shared Mailbox Permissions report.
  3. Click Export As and select your desired file format (CSV, PDF, XLSX, HTML) to export your shared mailbox permissions report.
  4. The Shared Mailbox Permissions report in M365 Manager Plus listing the shared mailboxes and the users who have been granted mailbox permissions over them.

Monitor your Exchange Online shared mailboxes and more

M365 Manager Plus simplifies the complex task of auditing shared mailbox permissions, giving you complete visibility and control over your Exchange Online environment.

Shared mailbox permission management

Effortlessly add, remove, or modify mailbox permissions in bulk from a simple, GUI-based interface, eliminating the need for complex and error-prone PowerShell scripts.

Reports on Microsoft 365 shared mailboxes

Generate dozens of pre-configured reports on shared mailboxes, including permissions, size, activity, and more to maintain tight control over your collaborative workspaces.

Real-time alerts on Microsoft 365 permission changes

Configure alerts for any modifications to shared mailbox permissions. Get instant notifications when access rights are changed, allowing you to revert unauthorized modifications quickly.

Eliminate PowerShell complexity

Run a detailed report on shared mailbox folder permissions with a single click, avoiding the complexities of cmdlets like Get-MailboxFolderPermission and nested loops. This reduces dependency on scripting and minimizes the risk of errors.

Important tips

Regularly audit shared mailbox permissions: Schedule periodic reviews of shared mailbox permissions, especially for mailboxes containing sensitive data (e.g., HR or Finance), to ensure access levels remain appropriate.

Differentiate between Full Access and Folder Permissions: Use Full Access for managers who need complete control over a mailbox. Use granular folder permissions for team members who only need to interact with specific folders like the Inbox or Calendar.

Clean up stale permissions regularly: Periodically review and remove permissions for shared mailboxes that are no longer accessed. This declutters your access lists and strengthens security.

Frequently asked questions

You need to be assigned the Exchange Administrator role in Microsoft 365 to view and export shared mailbox permissions.

You cannot schedule permission reports using only PowerShell. This requires setting up a scheduled task. However, M365 Manager Plus allows you to schedule any report, including mailbox folder permissions, to be run and emailed to you automatically.
Set-MailboxAutoReplyConfiguration -Identity >user's email address< -AutoReplyState Enabled -InternalMessage "Your message here"

Full Access allows a user to open the shared mailbox, read, create, and delete items. Send As allows a user to send emails that appear to come directly from the shared mailbox's address. They are independent permissions.

Yes. By default, shared mailboxes have a storage limit of 50 GB. To increase this limit, you will have to apply an Exchange Online Plan 2 license to your shared mailbox.

Simplify your shared mailbox and Exchange Online management with one-click reports and actions.

A holistic Microsoft 365 administration and security solution