Thursday, August 28, 2014

Viewing Delegates with Exchange 2010 and Powershell

When meeting requests are being delivered to the wrong people, it normally means that someone has added another user as a delegate in Outlook, or given the wrong permissions to the delegate. To find out which users have delegates using Powershell from the server can help identify these users. From the link (new window): we can see a one liner that will provide this information, however we can modify it slightly for different needs:

Running the command as is:

Get-Mailbox -ResultSize unlimited | Get-CalendarProcessing | where { $_.ResourceDelegates -ne "" } | Select-Object identity,@{Name=’ResourceDelegates’;Expression={[string]::join(",", ($_.ResourceDelegates))}} | Export-csv -Path c:\temp\ResourceDelegates.csv

Will produce a CSV file in c:\temp with column A as the Mailbox, column B, C, etc as the delegates, ready for importing into Excel. The @ symbol and everything after in the {} brackets is an array of the delegates.

You can get the results on a single mailbox (%IDENTITY% is the mailbox alias) by using:

Get-CalendarProcessing -identity %IDENTITY% | select-object ResourceDelegates

In this example, both Lucas Knorr and Nicholas Deane are delegates of Beau Kenny’s mailbox.

To get a list of all delegates for all mailboxes, you can use:

Get-Mailbox | Get-CalendarProcessing | Select-Object Identity, ResourceDelegates

However this has drawbacks, such as including mailboxes that don’t have delegates, and column width limitations. To resolve this, use:

Get-Mailbox | Get-CalendarProcessing | Where {$_.ResourceDelegates –ne “”} | Select-Object Identity, ResourceDelegates | Format-List

1 comment:

  1. Thank you! More than I needed, but everything I wanted. :)