Alejandro Mazzitelli

all about Microsoft 365!

Microsoft Teams Powershell

Establecer Quien Puede Crear Equipos en Microsoft Teams con Powershell y Graph

Dentro de la gobernanza de Microsoft Teams sabemos que en un tenant por defecto cualquier usuario puede crear equipos de Microsoft Teams. Esto es así por naturaleza quizas porque es parte de la gracias de usar Teams y que venga inicialmente de esta forma no complica absolutamente nada, mas aun cuando estamos en etapa de planificación. Ahora bien suponiendo que nadie administró el tenant desde un inicio o vaya uno a saber el motivo por el cual nadie tomó el control de Microsoft 365, en este caso el Teams, puede que con el correr del tiempo si nadie hizo los ajustes necesarios empecemos a ver decenas o cientos de Equipos en Microsoft Teams y en Microsoft 365 creados. Es posible que de estos equipos muchos tengan un sentido, un buen uso pero debe haber muchos otros que no, en donde los usuarios empezaron a probar para que se podía usar y luego con el tiempo quedan ahí abandonados.

Limitar quien puede crear Equipos en Teams (lo cual tambien afecta a crear Grupos) puede ayudar a las empresas a mantener el control entre otras cosas para seguir un lineamiento sobre su proposito, o bien para seguir una nomenclatura especifica. Los motivos pueden ser varios pero también ayuda a preservar recursos ya que el espacio de storage en Teams no es infinito.

Como comentaba antes, la limitación no es solo para Teams, ya que varios productos depende de la creacion de Grupos de Microsoft 365 y en definitiva lo que estamos haciendo no es limitar la creación solo en Teams sino en productos como Planner, Power BI y otros. Aquí estamos haciendo foco en Teams ya que principalmente hablamos de este producto.

Para poder administrar quien puede crear grupos o equipos precisamos de cierta licencia adicional, la cual quizas puede ser que la tengan como parte de otra licencia pero deben revisar que tanto quien realiza la configuracion siguiente como los miembros del grupo los cuales vamos a permitir crear grupos o equipos deben tener al menos una licencia Microsoft Entra ID P1 o P2. El resto de los usuarios no precisan dicha licencia.

Para poder completar esta tarea, vamos a usar Powershell y usaremos algunos modulos de Microsoft Graph. Tambien vamos a precisar crear un grupo de seguridad en Entra ID y en nuestro ejemplo se llamará “SG-AllowCrear”. Dentro del dicho grupo agregaremos a todo usuario que podrá crear grupos y equipos en Teams.

Para instalar Microsoft Graph usaremos los siguientes comandos.

#Instalar (si hace falta) y cargar los módulos necesarios
Install-Module Microsoft.Graph -Scope CurrentUser -AllowClobber
Install-Module Microsoft.Graph.Beta.Identity.DirectoryManagement
Install-Module Microsoft.Graph.Beta.Groups
Import-Module Microsoft.Graph
Import-Module Microsoft.Graph.Beta.Identity.DirectoryManagement
Import-Module Microsoft.Graph.Beta.Groups

Luego vamos a conectarnos con nuestra cuenta administrador al tenant de Microsoft 365

# Conectarse con permisos
Connect-MgGraph -Scopes "Directory.ReadWrite.All", "Group.Read.All"

En el siguiente paso vamos a establecer el nombre del grupo en la variable y si permitimos la creacion de grupos. Luego el proceso establecera la configuración y como resultado los que formen parte del grupo indicado son lo que podran crear grupos o equpos.

#Configurar el grupo que puede crear equipos
$GroupName = "SG-AllowCrear"
$AllowGroupCreation = "False"

#Establecer el grupo que puede crear equipos
$settingsObjectID = (Get-MgBetaDirectorySetting | Where-object -Property Displayname -Value "Group.Unified" -EQ).id

if(!$settingsObjectID)
{
    $params = @{
	  templateId = "62375ab9-6b52-47ed-826b-58e47e0e304b"
	  values = @(
		    @{
			       name = "EnableMSStandardBlockedWords"
			       value = $true
		     }
	 	     )
	     }
	
    New-MgBetaDirectorySetting -BodyParameter $params
	
    $settingsObjectID = (Get-MgBetaDirectorySetting | Where-object -Property Displayname -Value "Group.Unified" -EQ).Id
}

 
$groupId = (Get-MgBetaGroup -all | Where-object {$_.displayname -eq $GroupName}).Id

$params = @{
	templateId = "62375ab9-6b52-47ed-826b-58e47e0e304b"
	values = @(
		@{
			name = "EnableGroupCreation"
			value = $AllowGroupCreation
		}
		@{
			name = "GroupCreationAllowedGroupId"
			value = $groupId
		}
	)
}

Update-MgBetaDirectorySetting -DirectorySettingId $settingsObjectID -BodyParameter $params

#Verifica el grupo que puede crear equipos
(Get-MgBetaDirectorySetting -DirectorySettingId $settingsObjectID).Values

En la ultima linea del código, se realizará una consulta para ver si la configuración quedó aplicada.

En la imagen podemos ver el resultado. El parámetro GroupCreationAllowedGroupID tiene el dato del ID del grupo que nosotros definimos, aunque solo le habíamos dado el nombre. EnableGroupCreation figura en False con lo cual nadie mas que el grupo indicado puede crear grupos o equipos.

Suponiendo que ya tienen una limitación y no se acuerdan quien puede crear equipos, cual fue el grupo definido tiempo atras, podran usar la consulta. Solo vamos a precisar conectarnos a Microsoft Graph y ejecutar una lineas de codigo. Aquí se los dejo completo.

# Conectarse con permisos
Connect-MgGraph -Scopes "Directory.ReadWrite.All", "Group.Read.All"

#Solo Consultar
$settingsObjectID = (Get-MgBetaDirectorySetting | Where-object -Property Displayname -Value "Group.Unified" -EQ).id
(Get-MgBetaDirectorySetting -DirectorySettingId $settingsObjectID).Values

Con esto, obtendremos el resultado igual a la imagen anterior. Para terminar, como el resultado fue el GroupID, podremos usar este otro comando para averiguar el nombre del grupo que representa el Group ID.

#Identificar el GroupID como su nombre
Get-MgGroup -GroupId e8b7886c-5056-41ed-8462-5a1750acbad4 | Select-Object Id, DisplayName, Mail

Aquí vemos el resultado de la consulta del GroupID.

Por ultimo comentar que esto lo hicimos por Powershell ya que quisimos definir a ciertas personas dentro de un grupo para que si puedan crear pero el resto no. Existe una función en Entra ID donde podemos establecer via web que nadie pueda crear grupos de Microsoft 365, como dije es que nadie pueda, no tiene la opción de definir si algunos pocos si pueden.

Si quieren el script completo les dejo el link directo a mi Github

Espero que les haya sido de utilidad
Saludos
Alejandro.

LEAVE A RESPONSE

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Alejandro es consultor senior en infraestructura IT, principalmente en tecnologías Microsoft. Trabaja en forma independiente en empresas de diversas envergadura. En el año 2014 fue nombrado Microsoft MVP en la especialidad Windows ITPro. Hoy forma parte del programa Microsoft Reconnect. Adicionalmente es Partner de Microsoft.