Compartilhar via


Atribuir funções de administrador a contas de utilizador do Microsoft 365 com o PowerShell

Esse artigo se aplica ao Microsoft 365 Enterprise e ao Office 365 Enterprise.

Pode atribuir facilmente funções a contas de utilizador com o PowerShell para Microsoft 365.

Observação

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

Observação

O módulo do Azure Active Directory está a ser substituído pelo SDK do PowerShell do Microsoft Graph. Você pode usar o Microsoft Graph SDK do PowerShell para acessar todas as APIs do Microsoft Graph. Para saber mais, confira 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 API do Graph "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, confira o artigo Sobre 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.

Observação

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 }

Confira também