
So I have added a couple of parameters to the script so you can fine-tune the report to your needs.

Getting all mailbox permissions in a larger tenant can take some time because we need to get the permissions from 4 different places. So as you can see to get all the mailbox permissions we will need to look into different places and combine all the data. Get-EXOMailboxPermission -Identity | where We want to make sure that we don’t list the default system permissions, so we filter them out.

To view all users that have access to the mailbox we will need to use the cmdlet Get-EXOMailboxPermissions. Read and manage are basically full access permissions. The first 3 permissions can easily be set and viewed through the Microsoft 365 Admin Center, but for the folder permissions, you will need to use the get mailbox folder permissions cmdlet in PowerShell. We have the following permissions that we want to list: Because to get a complete overview of all the mailbox permissions we need to get the permissions from 4 different places. Mailbox Permissionsīefore we start with the report script, I first want to explain to you where all the different permissions are coming from. At the end of the article, you will find a link to the script in my GitHub repository.

The PowerShell script below exports the following data from user and shared mailboxes to a CSV file: With the help of PowerShell, we can easily get the mailbox folder permissions for each user and generate a nice CSV report from it. We will need to gather the permissions from different places and combine them into one clear overview. This makes managing and keeping track of the permissions a real challenge. Mailbox permissions can be set by the Exchange Admin or by the users themself. To keep track we want to get a report with all mailbox folder permissions.

How do you keep track of mailbox permissions in Exchange Online? Adding new permissions is easy and done quickly, but removing obsolete permissions is often forgotten.
