Office 365 es un ecosistema que cambia constantemente, en el que aparecen nuevos servicios de manera habitual y que representa un reto para los administradores a la hora de mantener un “tenant” siempre bajo control. Uno de los aspectos a tener en cuenta es el autoservicio de licencias. Con esta funcionalidad cualquiera de nuestros usuarios puede adjudicarse (en caso que estén disponibles) licencias gratuitas a modo de prueba o incluso comprar sus propias licencias para determinados servicio, vamos a ver como gestionar estas opciones desde Powershell.
La autoasignación y autocompra, que a priori puede parecer ok, en ciertos entornos puede provocar confusión, ya que de repente podemos ver aparecer en según qué directorios usuarios que no deberían estar allí, problemas legales al haber el usuario pagado con su propio dinero una licencia o peor, riesgos para los datos de la empresa. Vamos a ver cómo podemos primero controlar, y si quisiéramos deshabilitar estas funcionalidades.
Autoasignación de licencias de prueba
Con la irrupción de servicios como Flow (ahora Power Automate), Power BI.. los usuarios han tenido la opción de autoasignarse servicios gratuitos, todo esto lo podemos controlar de manera sencilla desde Powershell a través de los cmdlets MsolCompanyInformation y MsolCompanySettings.
Para comprobar en que estado se encuentra este servicio, ejecutaremos el siguiente comando que nos devolverá un $true si la autoasignación está habilitada o no.
Get-MsolCompanyInformation | fl AllowAdHocSubscriptions
Una vez sabiendo, esto podemos cambiar este estado, ahora utilizando el cmdlet MsolCompanySettings. Por ejemplo para desactivarlo sería así
Set-MsolCompanySettings -AllowAdHocSubscriptions $False
Con este mismo cmdlet podemos cambiar otros interesantes parámetros como la posibilidad de los usuarios para crear grupos, autorizar apps... que no tocaremos en este post.
Autocompra de licencias - Módulo MsCommerce
Teniendo ya bajo control el tema de las autolicencias gratuitas, pasamos a las de pago. Aqui los usuarios, como siempre dependiendo de nuestro tenant, tienen la posibilidad de comprar licencias de diferentes servicios y adjudicarlas a sus propios usuarios. Estamos hablando de licencias de Power Automate (antiguo Flow), Visio, Project o Power BI Pro.
En este caso para gestionar esto, debemos utilizar un módulo completamente diferente en Powershell y, ojo, solo compatible hasta versiones 5.x.
Primero de todo instalaremos el módulo MsCommerce con
Install-Module -Name MSCommerce
Lo importamos con
Import-Module -Name MSCommerce
Y finalmente conectamos al mismo con
Connect-MSCommerce
Una vez conectados, con el cmdlet MsCommercePolicy y el parámetro AllowSelfServicePurchase podemos ver una descripción del mismo
Get-MSCommercePolicy -PolicyId AllowSelfServicePurchase
Esto realmente no aporta mucha información, la cual si obtendremos con el cmdlet MSCommerceProductPolicies. El siguiente comando nos mostrará todos aquellos productos, con su ProductID y si están habilitados o no para la compra
Get-MSCommerceProductPolicies -PolicyId AllowSelfServicePurchase
Viendo los anteriores resultados ahora podemos decidir si queremos cambiar el estado de alguno de ellos. En base al ProductID podemos ver individualmente los productos por ejemplo para el producto Power BI Pro con el ProductID CFQ7TTC0L3PB lanzaríamos el siguiente cmdlet
Get-MSCommerceProductPolicy -PolicyId AllowSelfServicePurchase -ProductId CFQ7TTC0L3PB
Para desactivarlo o activarlo, utilizaremos lo siguiente, simplemente cambiando el último valor.
Update-MSCommerceProductPolicy -PolicyId AllowSelfServicePurchase -ProductId CFQ7TTC0L3PB -Enabled $False
Espero que os sea útil y os ayude a mantener un tenant más controlado.