Asignación de roles de administrador a cuentas de usuario de Microsoft 365 con PowerShell
Este artículo afecta tanto a Office 365 Enterprise como a Microsoft 365 Enterprise
Puede asignar fácilmente roles a cuentas de usuario mediante PowerShell para Microsoft 365.
Nota:
Obtenga información sobre cómo asignar roles de administrador a cuentas de usuario con el Centro de administración de Microsoft 365.
Para obtener una lista de recursos adicionales, consulte Administración de usuarios y grupos.
Asignación de roles a cuentas de usuario mediante Microsoft Graph PowerShell
Nota:
El sdk de PowerShell de Microsoft Graph reemplaza el módulo de Azure Active Directory. Puede usar el SDK de PowerShell de Microsoft Graph para acceder a todas las API de Microsoft Graph. Para más información, consulte Introducción al SDK de PowerShell de Microsoft Graph.
En primer lugar, use una cuenta de Administración administrador de DC o aplicación en la nube de Microsoft Entra para conectarse a su inquilino de Microsoft 365. Los cmdlets de este artículo requieren el ámbito de permiso RoleManagement.ReadWrite.Directory o uno de los demás permisos enumerados en la página de referencia "List subscribedSkus" Graph API. Algunos comandos de este artículo pueden requerir ámbitos de permisos diferentes, en cuyo caso esto se anotará en la sección correspondiente.
Connect-MgGraph -Scopes "RoleManagement.ReadWrite.Directory"
Para más información, consulteSobre los roles de administrador.
A continuación, identifique el nombre de inicio de sesión de la cuenta de usuario que desea agregar a un rol (por ejemplo: fredsm@contoso.com). Esto también se conoce como nombre principal de usuario (UPN).
A continuación, determine el nombre del rol. Consulte Microsoft Entra roles integrados.
Nota:
Algunos nombres de rol son diferentes para PowerShell de Azure Active Directory (Azure AD). Por ejemplo, el rol Administrador de SharePoint en el Centro de administración de Microsoft 365 es Administrador de servicios de SharePoint en PowerShell de Azure AD.
A continuación, rellene el UPN de usuario y los nombres de rol y ejecute estos 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
Este es un ejemplo de un conjunto de comandos completado que asigna el rol administrador de Exchange a la adelev@contoso.com cuenta:
$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 mostrar la lista de identificadores de usuario para un rol de administrador específico, use estos comandos.
$roleName="<role name>"
Connect-MgGraph -Scopes "Directory.Read.All"
Get-MgDirectoryRole | Where-Object { $_.DisplayName -eq $roleName } | ForEach-Object { Get-MgDirectoryRoleMember -DirectoryRoleId $_.Id }