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 de administrador do MICROSOFT ENTRA DC, Administração da Aplicação cloud ou Administrador globalpara 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

Preste atenção às notas neste artigo. 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 de Serviço do SharePoint à belindan@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 }

Consulte também