Búsqueda de sitios web

Cómo utilizar Update-MgUser con Microsoft Graph PowerShell


Usar PowerShell para realizar cambios de usuario simples en Microsoft 365 puede ser mucho más rápido y eficiente que usar la consola de administración si está familiarizado con los comandos. También será de gran ayuda si necesita realizar cambios a gran escala para varios usuarios mediante la automatización de una tarea repetitiva.

En este tutorial, le mostraré cómo puede usar el cmdlet Update-MgUser en Microsoft Graph PowerShell para realizar cambios en las cuentas de usuario en Microsoft 365.

Acerca del cmdlet Update-MgUser

El cmdlet Update-MgUser pertenece al módulo Microsoft.Graph.Users, que forma parte del SDK de Microsoft Graph PowerShell. Se utiliza para cambiar la configuración de cuentas de usuario en Microsoft 365.

En segundo plano, cuando se utiliza el cmdlet Update-MgUser, se llama a la siguiente URL a la API de Microsoft Graph con el método de solicitud PATCH :

https://graph.microsoft.com/v1.0/users/{id}

Permisos necesarios para Update-MgUser

El nivel mínimo de permisos que necesita para ejecutar este cmdlet y actualizar correctamente a un usuario es el permiso User.ReadWrite.All. Sin embargo, existen otros ámbitos de permiso que contienen el permiso para actualizar usuarios, estos son:

  • Usuario.AdministrarIdentidades.Todos
  • Directorio.LeerEscribir.Todo

Por ejemplo, puede ver en la imagen a continuación que he creado una nueva sesión de Microsoft Graph PowerShell con solo el alcance del permiso User.ManageIdentities.All. Con esto, podría actualizar el campo DisplayName de un usuario en mi inquilino.

Cambiar usuarios UPN con Microsoft Graph PowerShell

Cambiar el UPN (o nombre principal de usuario) de un usuario en Microsoft es rápido y fácil con Microsoft Graph PowerShell. Simplemente puede usar el cmdlet Update-MgUser con el parámetro -UserPrincipalName como en el siguiente ejemplo:

Update-MgUser -UserId [email  '
-UserPrincipalName "[email "

Aún es importante que conozca el impacto de modificar el UPN de un usuario en Microsoft 365, ya que podría afectar negativamente su productividad si ejecuta este comando de manera mal planificada.

Debe saber que al cambiar la parte del dominio de un UPN de usuario, debe especificar un dominio que esté activo y aceptado por su inquilino. Podría ser un dominio personalizado, como ourcloudnetwork.com o el dominio predeterminado (o "alternativo"), en el formato company.onmicrosoft.com.

Cómo cambiar el UPN para múltiples usuarios

El cmdlet Update-MgUser y los ejemplos que hemos utilizado anteriormente se pueden adaptar y aplicar a varios usuarios con un solo comando, lo que ayuda a simplificar los cambios y los mantiene consistentes y sin errores humanos.

Para hacer esto, usaremos un bucle ForEach simple en PowerShell.

Comience recopilando sus usuarios según una condición. Es posible que desee cambiar todos los usuarios de su inquilino, por lo que utilizar Get-MgUser -All puede ser suficiente. En mi ejemplo, almacenaré todos los usuarios en una matriz y luego cambiaré el UPN para que tenga un dominio diferente. A continuación especifico todos los usuarios que tienen un dominio específico en su UPN, que luego cambiaré.

$users = Get-MgUser | Where UserPrincipalName -match ourcloudnetwork.co.uk

Si desea obtener más información sobre el cmdlet Get-MgUser para utilizar consultas más avanzadas, consulte mi guía sobre Cómo utilizar Get-MgUser con Microsoft Graph PowerShell.

Podemos escribir la variable $users directamente en nuestra sesión de PowerShell para confirmar que todos los usuarios deseados se han almacenado correctamente. Si también desea especificar rápidamente cuántos elementos (usuarios) hay en la matriz, escriba $users.count.

Para recorrer cada usuario y actualizar UserPrincipalName, podemos usar el siguiente ejemplo.

$newdomain = "x7kxf.onmicrosoft.com" ##Add your accepted domain
ForEach ($user in $users) {
    $string = $null
    $userupn = $null
    $string = ($user.UserPrincipalName)
    $regex = "(\S*)(\.(\S*))?@(\S*)"
    $string -match $regex
    $userupn = $matches[1] + "@" + $newupn
    Update-MgUser -UserId $user.UserPrincipalName -UserPrincipalName $userupn
    Write-host "UPN for $($user.DisplayName) has been updated to $userupn"
}

Si he utilizado expresiones regulares para dividir el UPN en 2 secciones, el prefijo y el dominio. Puede utilizar el ejemplo anterior y modificarlo según sus necesidades.

Cómo cambiar otras propiedades de usuario con Microsoft Graph PowerShell

Hemos visto anteriormente que hay muchos parámetros disponibles para el cmdlet Update-MgUser, todos con nombres diferentes y que realizan diferentes acciones. A continuación se muestran algunos ejemplos comunes de cambios de usuario que puede encontrar en las actividades diarias.

Actualizar Acerca de mí de un usuario.

Update-MgUser -UserId [email  -AboutMe "String"

Actualizar la Ciudad de un usuario.

Update-MgUser -UserId [email  -City "String"

Actualizar el País de un usuario.

Update-MgUser -UserId [email  -Country "String"

Actualizar el Departamento de un usuario.

Update-MgUser -UserId [email  -Department "String"

Actualice el Nombre para mostrar de un usuario.

Update-MgUser -UserId [email  -DisplayName "String"

Actualizar el puesto de trabajo de un usuario.

Update-MgUser -UserId [email  -JobTitle "String"

Actualice la dirección SMTP principal de un usuario. Este campo debe contener uno de los dominios aceptados en su inquilino.

Update-MgUser -UserId [email  -Mail "String"

Cómo cambiar varias propiedades de usuario a la vez para un solo usuario

Si necesita actualizar varias propiedades para un solo usuario a la vez en el mismo comando, en lugar de tener varias líneas de código, puede definir varios parámetros en el mismo comando para simplificar. Por ejemplo, si un usuario ha cambiado de nombre, como por ejemplo casarse, en su DisplayName, UpdatePrincipalName y dirección de correo en el mismo comando, puede usar lo siguiente:

Update-MgUser -UserId [email  '
-DisplayName "Daniel Bradley" `
-UserPrincipalName "[email " `
-Mail "[email "

Artículos relacionados