azureblog.co.uk
← cd ~/roles
// roles/entra

Exchange AdministratorMicrosoft Entra built-in role

Can manage all aspects of the Exchange product.

Role ID29232cdf-9323-42fd-ade2-1d097af3e4de
PrivilegedNo
Permissions25

What it can do

PermissionWhat it allows
microsoft.azure.serviceHealth/allEntities/allTasksRead and configure Azure Service Health
microsoft.azure.supportTickets/allEntities/allTasksCreate and manage Azure support tickets
microsoft.backup/exchangeProtectionPolicies/allProperties/allTasksCreate and manage Exchange Online protection policy in Microsoft 365 Backup
microsoft.backup/exchangeRestoreSessions/allProperties/allTasksRead and configure restore session for Exchange Online in Microsoft 365 Backup
microsoft.backup/restorePoints/userMailboxes/allProperties/allTasksManage all restore points associated with selected Exchange Online mailboxes in M365 Backup
microsoft.backup/userMailboxProtectionUnits/allProperties/allTasksManage mailboxes added to Exchange Online protection policy in Microsoft 365 Backup
microsoft.backup/userMailboxRestoreArtifacts/allProperties/allTasksManage mailboxes added to restore session for Exchange Online in Microsoft 365 Backup
microsoft.directory/contacts/allProperties/readRead all properties for contacts
microsoft.directory/contacts/memberOf/readRead the group membership for all contacts in Microsoft Entra ID
microsoft.directory/contacts/standard/readRead basic properties on contacts in Microsoft Entra ID
microsoft.directory/groups.unified/assignedLabels/updateUpdate the assigned labels property on Microsoft 365 groups of assigned membership type, excluding role-assignable groups
microsoft.directory/groups.unified/basic/updateUpdate basic properties on Microsoft 365 groups, excluding role-assignable groups
microsoft.directory/groups.unified/createCreate Microsoft 365 groups, excluding role-assignable groups
microsoft.directory/groups.unified/deleteDelete Microsoft 365 groups, excluding role-assignable groups
microsoft.directory/groups.unified/members/updateUpdate members of Microsoft 365 groups, excluding role-assignable groups
microsoft.directory/groups.unified/owners/updateUpdate owners of Microsoft 365 groups, excluding role-assignable groups
microsoft.directory/groups.unified/restoreRestore Microsoft 365 groups from soft-deleted container, excluding role-assignable groups
microsoft.directory/groups/hiddenMembers/readRead hidden members of Security groups and Microsoft 365 groups, including role-assignable groups
microsoft.directory/onPremisesSynchronization/standard/readRead standard on-premises directory synchronization information
microsoft.office365.exchange/allEntities/basic/allTasksManage all aspects of Exchange Online
microsoft.office365.network/performance/allProperties/readRead all network performance properties in the Microsoft 365 admin center
microsoft.office365.serviceHealth/allEntities/allTasksRead and configure Service Health in the Microsoft 365 admin center
microsoft.office365.supportTickets/allEntities/allTasksCreate and manage Microsoft 365 service requests
microsoft.office365.usageReports/allEntities/allProperties/readRead Office 365 usage reports
microsoft.office365.webPortal/allEntities/standard/readRead basic properties on all resources in the Microsoft 365 admin center

Assign it

The role ID is the same in every tenant, so these work as they are. Make it eligible through PIM:

powershell13 lines
Connect-MgGraph -Scopes "RoleEligibilitySchedule.ReadWrite.Directory"
$user = Get-MgUser -UserId "jane.doe@contoso.com"
New-MgRoleManagementDirectoryRoleEligibilityScheduleRequest -BodyParameter @{
    Action           = "AdminAssign"
    Justification    = "Needs Exchange Administrator for <reason>"
    RoleDefinitionId = "29232cdf-9323-42fd-ade2-1d097af3e4de"
    DirectoryScopeId = "/"
    PrincipalId      = $user.Id
    ScheduleInfo     = @{
        StartDateTime = (Get-Date).ToUniversalTime().ToString("o")
        Expiration    = @{ Type = "afterDuration"; Duration = "P180D" }
    }
}

Who already has it?

powershell3 lines
Connect-MgGraph -Scopes "RoleManagement.Read.Directory"
Get-MgRoleManagementDirectoryRoleAssignment -Filter "roleDefinitionId eq '29232cdf-9323-42fd-ade2-1d097af3e4de'" -ExpandProperty Principal |
    ForEach-Object { $_.Principal.AdditionalProperties.displayName }

Related roles

Find the smallest role for a task →