What it is
A PowerShell script for Exchange hybrid migrations to Exchange Online. It collects Full Access, Send As, Send on Behalf, and calendar permissions from on-premises mailboxes, finds associated delegates (spider-web batching), and writes CSV files with permissions, recommended migration batches, and a migration schedule in the format used by the Microsoft FastTrack Mail Migration team. The README documents Exchange 2010 and 2013 environments.
Why use it
- Keep mailboxes that share a manager or delegate in the same migration batch so their access to each other's mailboxes isn't broken by cross-premises permission limits in a hybrid environment.
- Choose which permission types to collect, and enumerate groups or exclude service accounts and groups.
- Resume an interrupted run on large environments, or run only the batching and scheduling steps from an existing permissions file.
How to use it
- Run the script from a machine with the Exchange Management Tools and the Active Directory PowerShell module. Choose the permission types to collect.
- The script collects permissions, finds batches based on them, and creates a migration schedule. Use
-GetPermissionsOnly,-BatchUsers, or-BatchUsersOnlyto run only some of these steps. - Example that collects all permission types and enumerates groups:
.\Find-MailboxDelegates.ps1 -FullAccess -SendOnBehalfTo -SendAs -Calendar -EnumerateGroupsPrerequisites
- On-premises Exchange environment with the Exchange Management Tools (the README lists Exchange 2010 and 2013)
- Active Directory PowerShell module
- PowerShell 3.0 or later