Atribuir funções de administrador a contas de utilizador do Microsoft 365 com o PowerShell
Este artigo aplica-se tanto a Microsoft 365 Enterprise como a Office 365 Enterprise.
Pode atribuir facilmente funções a contas de utilizador com o PowerShell para Microsoft 365.
Nota
Saiba como atribuir funções de administrador a contas de utilizador com o centro de administração do Microsoft 365.
Para obter uma lista de recursos adicionais, veja Gerir utilizadores e grupos.
Atribuir funções a contas de utilizador com o Microsoft Graph PowerShell
Nota
O módulo do Azure Active Directory está a ser substituído pelo SDK do PowerShell do Microsoft Graph. Pode utilizar o SDK do PowerShell do Microsoft Graph para aceder a todas as APIs do Microsoft Graph. Para obter mais informações, veja Introdução ao SDK do PowerShell do Microsoft Graph.
Em primeiro lugar, utilize uma conta Microsoft Entra administrador dc ou de Administração da Aplicação cloudpara ligar ao seu inquilino do Microsoft 365. Os cmdlets neste artigo requerem o âmbito de permissão RoleManagement.ReadWrite.Directory ou uma das outras permissões listadas na página de referência Graph API "List subscribedSkus". Alguns comandos neste artigo podem exigir âmbitos de permissão diferentes, caso em que será indicado na secção relevante.
Connect-MgGraph -Scopes "RoleManagement.ReadWrite.Directory"
Para obter mais informações, consulte Atribuir funções de administrador.
Em seguida, identifique o nome de início de sessão da conta de utilizador que pretende adicionar a uma função (exemplo: fredsm@contoso.com). Isto também é conhecido como o nome principal de utilizador (UPN).
Em seguida, determine o nome da função. Veja Microsoft Entra funções incorporadas.
Nota
Alguns nomes de funções são diferentes para o PowerShell do Azure Active Directory (Azure AD). Por exemplo, a função administrador do SharePoint no centro de administração do Microsoft 365 é Administrador de Serviços do SharePoint no Azure AD PowerShell.
Em seguida, preencha o UPN do utilizador e os nomes das funções e execute estes comandos:
$userUPN="<user UPN>"
$roleName="<role name>"
$role = Get-MgDirectoryRole | Where-Object {$_.displayName -eq $roleName}
if ($role -eq $null) {
$roleTemplate = (Get-MgDirectoryRoleTemplate | Where-Object {$_.displayName -eq $roleName}).id
New-MgDirectoryRole -DisplayName $roleName -RoleTemplateId $roleTemplate
$role = Get-MgDirectoryRole | Where-Object {$_.displayName -eq $roleName}
}
$userId = (Get-MgUser -Filter "userPrincipalName eq '$userUPN'").Id
$newRoleMember =@{
"@odata.id"= "https://graph.microsoft.com/v1.0/users/$userId"
}
New-MgDirectoryRoleMemberByRef -DirectoryRoleId $role.Id -BodyParameter $newRoleMember
Eis um exemplo de um conjunto de comandos concluído que atribui a função de Administrador do Exchange à adelev@contoso.com conta:
$userUPN="adelev@contoso.com"
$roleName="Exchange Administrator"
$role = Get-MgDirectoryRole | Where-Object {$_.displayName -eq $roleName}
if ($role -eq $null) {
$roleTemplate = (Get-MgDirectoryRoleTemplate | Where-Object {$_.displayName -eq $roleName}).id
New-MgDirectoryRole -DisplayName $roleName -RoleTemplateId $roleTemplate
$role = Get-MgDirectoryRole | Where-Object {$_.displayName -eq $roleName}
}
$userId = (Get-MgUser -Filter "userPrincipalName eq '$userUPN'").Id
$newRoleMember =@{
"@odata.id"= "https://graph.microsoft.com/v1.0/users/$userId"
}
New-MgDirectoryRoleMemberByRef -DirectoryRoleId $role.Id -BodyParameter $newRoleMember
Para apresentar a lista de IDs de utilizador para uma função de administrador específica, utilize estes comandos.
$roleName="<role name>"
Connect-MgGraph -Scopes "Directory.Read.All"
Get-MgDirectoryRole | Where-Object { $_.DisplayName -eq $roleName } | ForEach-Object { Get-MgDirectoryRoleMember -DirectoryRoleId $_.Id }