Atribuir funções de administrador a contas de usuário do Microsoft 365 com o PowerShell

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

Você pode atribuir facilmente funções a contas de usuário usando o PowerShell para o Microsoft 365.

Observação

Saiba como atribuir funções de administrador a contas de usuário com o Centro de administração do Microsoft 365.

Para obter uma lista de recursos adicionais, consulte Gerenciar usuários e grupos.

Atribuir funções a contas de usuário usando o Microsoft Graph PowerShell

Observação

O módulo do Azure Active Directory está sendo substituído pelo SDK do Microsoft Graph PowerShell. 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.

Primeiro, use um administrador Microsoft Entra DC, Administração de Aplicativo na Nuvem ou conta de administrador globalpara se conectar ao locatário do Microsoft 365. Os cmdlets neste artigo exigem o escopo de permissão RoleManagement.ReadWrite.Directory ou uma das outras permissões listadas na página de referência 'Lista subscritoSkus' API do Graph. Alguns comandos neste artigo podem exigir escopos de permissão diferentes, nesse caso, isso será observado na seçã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 entrada da conta de usuário que você deseja adicionar a uma função (exemplo: fredsm@contoso.com). Isso também é conhecido como UPN (nome da entidade de usuário).

Em seguida, determine o nome da função. Consulte Microsoft Entra funções internas.

Observação

Preste atenção às anotações deste artigo. Alguns nomes de função são diferentes para o PowerShell (Azure AD) do Azure Active Directory. Por exemplo, a função administrador do SharePoint no Centro de administração do Microsoft 365 é Administrador de Serviços do SharePoint em Azure AD PowerShell.

Em seguida, preencha o UPN do usuário e os nomes de função 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

Aqui está um exemplo de um conjunto de comandos concluído que atribui a função de Administrador de Serviços 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 exibir a lista de IDs de usuário para uma função de administrador específica, use esses 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