by lunarg on August 10th 2016, at 15:31

It may not seem evident to find out which mailboxes are accessible by a particular user or group. Through EAC, there is no apparent way to do this, as giving access for a user to a (shared) mailbox can only be done through the shared mailbox and then providing the user/group access. There is no way to query a particular user/group and show a list of mailboxes that user/group has access to. Fortunately, it seems that Powershell (EMS) does provide an easier answer.

These cmdlets work in both Office365 and on-premise Exchange 2007 or newer.

Full access

List mailboxes to which a user/group has access to:

Get-Mailbox | Get-MailboxPermission -User user1

Although the cmdlet states a user name, replacing the username "user1" with a group name (e.g. "group1") also works to find out which members of a particular group have access to those mailboxes.

You can further drill down to mailbox types: e.g. I only want to list shared mailboxes, not user mailboxes:

Get-Mailbox -RecipientTypeDetails SharedMailbox -ResultSize Unlimited | Get-MailboxPermission -User user1

Send As

List mailboxes to which a user/group has Send As permissions:

Get-Mailbox | Get-RecipientPermission -Trustee user1

Again, you can add additional filters to Get-Mailbox in order to limit the results.

Send On Behalf

Send On Behalf works a little differently as it's not considered to being a "trustee":

Get-Mailbox | Where {$_.GrantSendOnBehalfTo -match "user1"}

Because of the method used, this method will not be as accurate. To query more narrowly, try specifying the full user name or mailbox alias.


Aside from the above permissions, on-premise Exchange also has Delegates. It's basically the same but this is set up by the user itself. Delegates are stored in separate AD attributes and complement the permissions set up by the Exchange admin.

To query for delegates, use the method to determine Send On Behalf permissions, but instead, query the msExchDelegateListLink and msExchDelegateListBL attributes:

Get-Mailbox | Where {$_.msExchDelegateListBL -match "user1"}
« July 2024»
« Most people tend to avoid true conflict. Ironically this breeds more conflict. »