En Office 365 y Azure es una práctica habitual el añadir usuarios invitados externos para poder colaborar con ellos en nuestro entorno, por ejemplo Teams. En determinadas situaciones podríamos necesitar que el status de esta persona cambie a usuario normal. Esto, que no podemos hacer directamente en Azure o en el admin de Office 365, vamos a ver cómo podemos hacerlo a través de Powershell.
Existen dos diferencias fundamentales a nivel de propiedades entre los dos tipos de usuarios. Por una parte tenemos la propiedad Source, que indica de qué manera este usuario se loguea, puede ser utilizando credenciales especificadas en nuestro tenant, de uno externo, de un directorio AD sincronizado, de Microsoft.. y por otra parte tenemos el UserType, que define cuál es la relación de esa cuenta contra nuestro entorno, está se marca como Guest en caso de un invitado y cómo Member en caso de un usuario normal, es contra esta propiedad que actuaremos.
A tener en cuenta en estos casos que debemos tener claro que deseamos al cambiar esta relación y preguntarnos también cosas como si el UPN del usuario debería cambiar, si deberíamos asignarle una cuenta de correo..En este caso abordaremos únicamente este cambio de relación a nivel interno.
Para el Cybertruco de hoy necesitaremos instalado en nuestro Powershell el módulo MSOnline, podemos comprobar si ya lo tenemos ejecutando el cmdlet
Get-module
Y en caso que no sea el caso lo podemos instalar e importar con
Install-Module MSOnline
Import-Module MSOnline
Conexión al Azure AD
Como siempre podemos conectar con el siguiente cmdlet
Connect-MsolService
Identificar usuarios invitados
Para obtener el listado completo de los usuarios invitados en nuestro tenant ejecutaremos el cmdlet Get-MsolUser filtrando por la propiedad UserType. Esto también es relevante para mantener este segmento de usuarios al día, ya que es fácil que se nos pida añadir a alguno y que luego se quede allí olvidado..
Get-MsolUser | Where-Object UserType -eq "Guest"
Editar el tipo de usuario
Una vez tengamos identificado al usuario invitado que queramos modificar guardaremos el mismo en una variable para posteriormente poder referenciar su ObjectId. Primero como decimos guardamos el usuario con el que queramos trabajar
$usuario = Get-MsolUser -UserPrincipalName "[email protected]"
Una vez tenemos esto, ya podemos lanzar el Set-MsolUser para cambiar el tipo de usuario como vemos en el siguiente ejemplo
Set-MsolUser -ObjectId $usuario.ObjectId -UserType "Member"
En caso que queramos cambiarlo de vuelta simplemente especificamos el UserType Guest.
Set-MsolUser -ObjectId $usuario.ObjectId -UserType "Guest"
Comprobar el UserType de un usuario
Finalmente podemos comprobar que todo esté como queremos obteniendo el valor de la propiedad UserType con el cmdlet Get-MsolUser
Get-MsolUser -ObjectId $usuario.ObjectId | Select-Object DisplayName, UserType
Ahora a comprobar vuestros tenants, un saludo.