skip to Main Content

List all mailboxes user has access to with PowerShell

In Exchange, we can get mailbox permissions. That’s great if you want to know which user has access to which mailbox. You can assign security groups instead of a user directly as mailbox permission. What if you like to reverse it and get all mailboxes user has access to? In this article, you will learn how to list all mailboxes user has access to with PowerShell.

Get mailbox permissions

Log in to Exchange Admin Center. Click recipients in the feature pane and follow with mailboxes in the tab. Find the user in the list view and double-click on it.

List all mailboxes user has access to with PowerShell EAC list view

Check which mailboxes have access to the mailbox of Amanda Morgan:

  • Send as Access: Boris Campbell, Kylie Davidson
  • Send on Behalf: Christopher Payne
  • Full Access: Benetiz Anees

List all mailboxes user has access to with PowerShell EAC mailbox delegation

The above information is excellent, but that’s not what we like to know. We want to know which mailboxes the user Amanda Morgan has access to.

List all mailboxes user has access to

You can open every mailbox and look if you find the user in the Send as/Send on Behalf/Full Access permissions. We don’t want to open all the mailboxes one by one and check if we can find the user in the list as that is time-consuming.

Get Send As permissions

The user has Send As permissions for these mailboxes.

Get Send on Behalf permissions

List which mailboxes the user has Send on Behalf permissions.

Get Full Access permissions

Run Exchange Management Shell as administrator. Make use of the Get-Mailbox cmdlet. The user has Full Access permissions to these mailboxes.

Filter mailboxes with RecipientTypeDetails parameter

Make use of the RecipientTypeDetails parameter. The RecipientTypeDetails parameter filters the results by the specified mailbox subtype. Valid values are:

  • DiscoveryMailbox
  • EquipmentMailbox
  • GroupMailbox
  • LegacyMailbox
  • LinkedMailbox
  • LinkedRoomMailbox
  • RoomMailbox
  • SchedulingMailbox
  • SharedMailbox
  • TeamMailbox
  • UserMailbox

The user has Full Access permissions to these room mailboxes.

You can always list the results as a list instead of a table.

Did this help you to list all mailboxes user has access to with PowerShell?

Read more: Export mailbox folder permissions to CSV file »

Conclusion

You learned how to list all mailboxes user has access to with PowerShell. It will take time to find mailboxes which user has access to in Exchange Admin Center. Make use of the Get-Mailbox cmdlet in PowerShell and get the permissions.

Did you enjoy this article? You may also like Create send connector Exchange 2016. Don’t forget to follow us and share this article.

ALI TAJRAN

ALI TAJRAN

ALI TAJRAN is a passionate IT Architect, IT Consultant, and Microsoft Certified Trainer. He started Information Technology at a very young age, and his goal is to teach and inspire others. Read more »

This Post Has 5 Comments

  1. Thanks for your article.
    Everything goes ok with the “Get Send on Behalf permissions” and with “Get Full Access permissions” commands.

    Just with the “Get Send As permissions” I get an error because the term ‘Add-ADPermission’ is not recognized as the name of a cmdlet, function, script file, or operable program.

    Can you help me find my fault?

    1. You’re welcome. I am glad that two of the cmdlets did work. Let’s see why the third and last one didn’t, as it should.

      Are you using Exchange Online or Exchange on-premises? Use Exchange Management Shell when running the cmdlets.

      1. I use an hybrid environment with Exchange Online and Active Directory on-premise.
        The Exchange management Shell is installed on a server on premise to manage the creation of the mailbox. Even if I connect with it to 365 executing the command I don’t get the previous error but I don’t get neither any result, just the command prompt…
        I’m still missing something in the procedure.

        Thx anyway

        1. The focus was on Exchange on-premises when writing this article. That’s why I asked if you are running Exchange Online or Exchange on-premises. The cmdlets vary a little bit between these two.

          I will write a new article about how to list all mailboxes user has access to in Exchange Online or update this one.

          To answer your question:

          Connect to Exchange Online. We will use the Exchange Online PowerShell v2 cmdlets as this will retrieve the results faster.

          Get-EXOMailbox | Get-EXORecipientPermission -Trustee “Amanda Morgan” | ft Trustee,Identity,AccessRights

Leave a Reply

Your email address will not be published. Required fields are marked *

Back To Top