A veces, por cualquier motivo es necesario cambiar de licencias a una cantidad elevada de usuarios. Nos expira una licencia y la cambiamos por otra, necesitamos más funcionalidad …. Los motivos pueden ser diversos y no son los que determinan el procedimiento de cambiar licencias masivamente.
Qué necesitamos
Lo primero, un dispositivo configurado con el módulo de Powershell para Office 365. Si no sabes como configurarlo, échale un ojo a este otro artículo. Conectar a Office 365 por Powershell.
Necesitaremos también un fichero CSV con los usuarios a los que se les va a cambiar la licencia, y los sku de las licencias que se van a quitar y de las que se van a añadir.
Comenzamos
Vamos a suponer que desde tu Pc ya puedes conectar por Powershell, y de no ser así, visita el artículo Conectar a Office 365 por Powershell para poder seguir con este.
Exportar los usuarios en un CSV lo podemos hacer fácilmente desde el centro de administración de Microsoft 365, llendo a usuarios activos. Como se va a sustituir una licencia, será fácil filtrar los usuarios por licencia y luego exportarlos.

Una vez clicado sobre nuevo filtro, nos pedirá una serie de datos. El primero será añadirle un nombre, y después únicamente ir al desplegable de licencias y seleccionar la licencia por la que queremos filtrar.

Cuando le damos a agregar, ya directamente aplica el filtro y solamente listará los usuarios en este caso con esa licencia de Teams Exploratory.


Connect-MsolService
Get-MsolAccountSku

Preparando el CSV
Si editáis el csv que se descargo anteriormente, se puede observar que dispone de muchas columnas, pero únicamente se necesitará la columna de nombre de usuario. Yo, para no tener duda, elimino las columnas que no voy a utilizar.
Si está en Expañol el tenant, la cabecera de la columna aparecerá como nombre principal de usuario, cambiarla por UserPrincipalName.


Guardar el csv en una ruta fácil. Yo por ejemplo me he creado una carpeta tmp en C, y renombré el csv a users.csv.
Modificando las licencias
Import-Csv -Path C:\tmp\users.csv | foreach { Set-MsolUserLicense -UserPrincipalName $_.UserPrincipalName -RemoveLicenses henpreses:TEAMS_EXPLORATORY }
Import-Csv -Path C:\tmp\users.csv | foreach { Set-MsolUserLicense -UserPrincipalName $_.UserPrincipalName -AddLicenses henpreses:POWER_BI_STANDARD }

Si vamos pasados unos segundos para que el portal refresque los cambios veremos que los usuarios ahora aparecen con la licencia de Power BI gratis, en este caso.

Conclusión
De esta manera se ha visto como en cuestión de minutos se pueden cambiar las licencias de cientos de usuarios masivamente. Es fácil exportar los usuarios y es fácil editar el csv que se exporta, obtener los sku y por último decirle al script que primero quite una licencia y luego añada la que se desea.