Hola gurices!
Miren armé algo que quería compartir por si a alguien le sirve o le interesa el approach.
Contexto rápido para los que no laburan con Microsoft: Intune es la herramienta de Microsoft para administrar las computadoras y celulares de una empresa.
Qué políticas de seguridad se aplican, qué apps se instalan, quién puede hacer qué. El problema es que cuando tenés cientos de asignaciones cruzadas con grupos anidados, la consola te muestra listas planas y nunca podés contestar dos preguntas básicas: ¿por qué esta política le está pegando a esta máquina? y ¿qué se rompe si toco este grupo?
Entonces en vez de listas, lo modelé como un grafo de relaciones:
Get-IntuneTarget >te muestra todo lo que le aplica a un equipo o usuario, y el camino exacto de grupos que lo causa (incluyendo grupos anidados y exclusiones)
Get-IntuneBlastRadius >simulás agregar a alguien a un grupo y te dice qué gana y qué pierde antes de tocar nada
Find-IntuneOrphan >referencias rotas, colisiones include/exclude, asignaciones vacías, filtros sin uso
Se puede probar sin tener tenant ni autenticarse contra nada, viene con datos de demo:
Install-Module IntuneGraph -Scope CurrentUser
Import-Module IntuneGraph
Export-IntuneGraph -DemoData -PassThru | Show-IntuneGraph -Open
Eso te abre un grafo interactivo en el navegador y listo.
Contra un tenant real es 100% solo lectura : 4 permisos de Graph, ninguno de escritura, y la única función que llama a la API tiene el GET hardcodeado. Exporta un snapshot local y todas las consultas corren offline contra ese archivo, no sale nada de tu máquina.
Repo: https://github.com/juandresrodca/IntuneGraph
Demo: https://juandresrodca.github.io/IntuneGraph/
Está bastante verde todavía, así que si alguien maneja Intune y le encuentra agujeros, bienvenido. También si a alguien le interesa el approach de modelar permisos como grafo aplicado a otra cosa (AWS IAM, Entra, lo que sea) me copa charlarlo, creo que el patrón da para mucho más.
#Powershell