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.

powershelllogo

 

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.