Hola a todos, en este artículo vamos a ver cómo borrar grupos en Azure Active Directory de forma masiva, he decido escribir este post debido a que en una sincronización de identidades desde Active Directory local hacia Azure AD todos los grupos locales fueron sincronizados, lo cual era algo que no deseaba en principio, adicionalmente que se trataba de una gran cantidad de grupos como veremos más adelante. A continuación una imagen de los grupos vistos desde el portal clásico de Azure (nótese que hasta el grupo domain admins se encuentra allí)
Bien, para solucionar esto y no tener que eliminar los grupos uno por uno, vamos a recurrir a nuestro amigo PowerShell. Si no tienes el módulo de PowerShell para Azure Active Directory te recomiendo ver el siguiente vídeo dónde explico cómo hacerlo: Channel 9 - PowerShell para Azure AD. Una vez cargado el módulo de PowerShell nos conectamos a los servicios en línea de Microsoft usando el cmdlet
Connect-Msolservice
Ahora ya podemos explorar objetos tales como usuarios, grupos y contactos. En este caso vamos a consultar por todos los grupos de seguridad existentes usando el siguiente cmdlet:
Get-MsolGroup -GroupType "Security"
Como lo indica la instrucción traerá todos los grupos de seguridad
Si cuento los grupos usando el siguiente cmdlet: (Get-MsolGroup -GroupType Security).count
Podemos ver que se trata de bastantes: 281 para ser más exactos.
Mi intención es borrar todos estos grupos, pero probablemente la suya no lo sea, es decir pueden existir ciertos grupos que deseemos conservar, por ejemplo los grupos de los servicios de sincronización o algún otro dependiendo de cada necesidad, si queremos hacerlo no queda más remedio que hacer las respectivas excepciones utilizando operadores para el manejo de cadenas en PowerShell. Por ejemplo veamos como es el caso donde queramos conservar los grupos que se crean para la sincronización.
En la siguiente imagen se puede apreciar que dichos grupos inician con la palabra ADSync
Con lo cual en el "where" podemos utilizar comodines para lograr nuestro propósito, y la instrucción quedaría dela siguiente forma:
Get-MsolGroup -GroupType “Security” | Where-Object {$_.DisplayName -NotLike “ADSync*”}
Nos arrojará todos los grupos de seguridad que su nombre no empiece por ADSync (-NotLike “ADSync*”)
Bien ahora que ya tenemos listados los grupos a eliminar, solo nos hace falta pasar el cmdlet que hace la tarea: Remove-MsolGroup
Con esto, la instrucción final queda de la siguiente manera:
Get-MsolGroup -GroupType “Security” | Where-Object {$_.DisplayName -NotLike “ADSync*”} | Remove-MsolGroup -Force
Después de ejecutar lo anterior, podemos usar la siguiente instrucción para consultar todos los grupos existentes: Get-MsolGroup -All
Allí podemos ver que hay muchos grupos ADSync, pues se trata de diversas integraciones con directorios que he realizado en mi tenant, si se dan cuenta hay nombres de grupos repetidos, los cuales son diferenciados por el objectId
Pero si lo que queremos es borrar todos los grupos, en mi caso incluyendo los de sincronización de directorios, basta con ejecutar los siguiente: Get-MsolGroup -All | Remove-MsolGroup -Force
Después de hacerlo, volvemos a listar todos los grupos y como se puede ver ya no aparece ninguno, hemos borrado absolutamente todos los grupos.
Y si vamos al portal de Azure nos encontramos con lo siguiente:
Bien, como dato adicional les dejo algunos comandos útiles para Office 365:
Remover todos los usuarios sin licencia:
Get-MsolUser -All -UnlicensedUsersOnly | Remove-MsolUser -Force
Remover todos los contactos:
Get-MsolContact -All | Remove-MsolContact -Force
Como siempre, espero esta información les sea de utilidad. Hasta la pròxima!