
- Microsoft Graph PowerShell v3 reemplaza progresivamente los módulos AzureAD y MSOnline, ofreciendo una administración moderna y centralizada de Microsoft 365.
- La clave está en gestionar permisos de forma granular usando registros de aplicación segmentados y eligiendo siempre el ámbito mínimo necesario para cada script o proceso.
- Su uso permite integrar, automatizar y controlar datos, usuarios, licencias y seguridad, además de habilitar una conexión segura con Power Platform, Power Apps y Power Automate.
- Adoptar este SDK implica planificar la migración, conocer sus funcionalidades e implementar mejores prácticas para evitar errores comunes al gestionar la administración cloud.
En el mundo actual de la administración y automatización de entornos Microsoft 365, el dominio de nuevas herramientas es más crucial que nunca. Microsoft Graph PowerShell v3 se ha convertido en el estándar de facto para la gestión avanzada de servicios en la nube, desplazando progresivamente a los antiguos módulos como AzureAD y MSOnline. La transición hacia esta plataforma no solo supone un cambio de comandos o sintaxis, sino una transformación completa en la manera de interactuar, securizar y desplegar soluciones de administración IT modernas en entornos empresariales.
Con el objetivo de arrojar luz sobre qué es Microsoft Graph PowerShell v3, para qué sirve y cómo migrar con éxito desde soluciones tradicionales, este artículo explora en profundidad todos los aspectos relevantes: desde su arquitectura, permisos y autenticación, hasta ejemplos prácticos, casos reales de integración con plataformas como Power Platform y mejores prácticas para garantizar tanto la seguridad como la eficiencia al trabajar con esta potente combinación de PowerShell y Microsoft Graph. Prepárate para un recorrido integral que transformará la forma en la que ves tu ecosistema de administración, sea cual sea tu nivel técnico.
Índice
- 1 Panorama del cambio: del legado al presente con Microsoft Graph PowerShell v3
- 2 ¿Qué es exactamente Microsoft Graph PowerShell v3?
- 3 ¿Por qué Microsoft Graph PowerShell v3 se ha vuelto fundamental en la administración de Microsoft 365?
- 4 Componentes clave y arquitectura de Microsoft Graph PowerShell v3
- 5 Migración desde AzureAD y MSOnline: lo que realmente cambia
- 6 Requisitos previos y consideraciones para empezar con Microsoft Graph PowerShell v3
- 7 Permisos y seguridad: los pilares de la administración moderna con Graph
- 8 Ajuste de rendimiento: paginación, filtrado y eficiencia
- 9 Desglose de componentes: qué recursos y datos permite gestionar Microsoft Graph
- 10 Primeros pasos: instalación y conexión
- 11 Casos de uso reales y recetas habituales con Microsoft Graph PowerShell v3
- 12 Mejores prácticas, lecciones aprendidas y recomendaciones
Panorama del cambio: del legado al presente con Microsoft Graph PowerShell v3
El salto a Microsoft Graph PowerShell v3 es, ante todo, el resultado de la evolución natural de las APIs y frameworks de administración de Microsoft 365. Hasta hace pocos años, los equipos IT dependían casi exclusivamente de módulos como AzureAD (Azure Active Directory) o MSOnline para gestionar identidades, usuarios, licencias o políticas en la nube. Sin embargo, Microsoft anunció la obsolescencia y el cierre progresivo de estos módulos (MSOnline: obsoleto desde marzo de 2024, eliminado en mayo de 2025; AzureAD: obsoleto desde marzo de 2024, fuera de soporte desde marzo de 2025), lo que ha forzado a las organizaciones a migrar su stack de automatización hacia opciones más modernas.
El relevo lo toma Microsoft Graph PowerShell SDK (a partir de la versión 3.x, centrada en Microsoft.Graph). No es solo un cambio de nombres de comandos: implica repensar cómo se estructura cualquier automatización, desde la autenticación y asignación de permisos hasta el procesamiento eficiente de grandes volúmenes de información bajo políticas de seguridad estrictas y escenarios cloud-only.
¿Qué es exactamente Microsoft Graph PowerShell v3?
Microsoft Graph PowerShell v3 es un SDK en forma de módulo PowerShell que convierte gran parte de la funcionalidad de la API REST de Microsoft Graph en cmdlets de PowerShell accesibles de forma estandarizada. Permite, de manera unificada y segura, acceder y gestionar toda la información y los servicios de Microsoft 365, Azure y recursos integrados como Teams, SharePoint, OneDrive, Outlook, Intune y más. La versión 3 del SDK marca una madurez y una consolidación en la interfaz de administración, integrando mejoras de rendimiento, seguridad, estructura modular y compatibilidad multiplataforma (Windows PowerShell 5.1 y PowerShell 7+).
El núcleo de Microsoft Graph reside en su API REST, que actúa como el cerebro central de toda la información que circula por el universo Microsoft. Pero Microsoft Graph PowerShell v3 hace la experiencia mucho más sencilla para los administradores, ya que elimina la necesidad de interactuar directamente con el API mediante peticiones HTTP complejas o autenticaciones manuales. Ahora todo es posible usando únicamente PowerShell como interfaz, bajo un modelo de permisos y autenticación mucho más granular y controlado.
¿Por qué Microsoft Graph PowerShell v3 se ha vuelto fundamental en la administración de Microsoft 365?
La decisión de migrar a Graph PowerShell v3 es inevitable –tanto por motivos de soporte como de funcionalidad–, pero además conlleva una serie de ventajas estratégicas:
- Centralización de la administración: Unifica el acceso a todos los servicios de Microsoft 365 desde una sola API (usuarios, grupos, dispositivos, licencias, correo, archivos…)
- Permisos granulares y seguros: Control detallado tanto en modalidad delegada (en nombre del usuario) como de aplicación (automatizaciones, procesos nocturnos, integración con sistemas externos), siguiendo el principio de mínimo privilegio.
- Automatización avanzada: Scripts, procesos desatendidos, integración fácil con Power Platform y flujos de aprobación o respuesta automática.
- Mejor rendimiento y flexibilidad: Modularidad, control de paginación y filtrado en servidor, reducción de cargas innecesarias y resiliencia ante límites y políticas de throttling (ajuste de solicitudes).
- Compatibilidad futura: Es la plataforma que Microsoft va a seguir expandiendo y mejorando, alejando cada vez más el soporte de los módulos «heredados».
Componentes clave y arquitectura de Microsoft Graph PowerShell v3
El SDK y sus módulos
Microsoft Graph PowerShell v3 se compone de un conjunto de módulos (llamados metamódulos y submódulos). El módulo principal es Microsoft.Graph, pero este a su vez agrupa decenas de submódulos especializados (como Microsoft.Graph.Users, Microsoft.Graph.Groups, Microsoft.Graph.Teams, etc.). Esto permite a los administradores instalar solo lo que necesiten, reduciendo dependencias y tiempos de carga en entornos grandes.
Es recomendable instalar únicamente el módulo base de autenticación (Microsoft.Graph.Authentication) y los submódulos necesarios para cada área de trabajo o automatización. La instalación completa puede resultar lenta y pesada, especialmente en infraestructuras on-premises o scripts ligeros que se ejecutan de forma frecuente. Además, esto facilita la actualización y mantenimiento.
Escenarios y tipos de autenticación
Microsoft Graph expone dos grandes tipos de autenticación:
- Autenticación Delegada: El script actúa en nombre del usuario que inicia sesión en ese momento. Los permisos dependen tanto de los roles del usuario como del consentimiento dado a la aplicación.
- Autenticación de Aplicación: El script funciona como una entidad de servicio independiente (ideal para procesos por lotes o integraciones nocturnas). Los permisos están ligados a un registro de aplicación y suelen concederse de forma explícita desde el portal de Azure/Microsoft Entra.
La gran ventaja de este modelo es la seguridad. Ya no basta con ser administrador global para «hacerlo todo»: ahora hay que consentir los ámbitos justos para cada tarea, y se puede separar tanto el alcance de cada registro de aplicación como limitar los riesgos en caso de incidente o error en un script concreto.
Migración desde AzureAD y MSOnline: lo que realmente cambia
Antes de la llegada de Graph PowerShell, comandos como Get-MsolUser, Get-AzureADUser o Set-AzureADUser estaban en el centro de cualquier automatización. Con la jubilación de MSOnline y AzureAD, los equipos se han visto obligados a revisar sus scripts y repensar sus estrategias.
La migración no es una sustitución «automática» de comandos, sino que requiere reajustar la forma en la que se abordan temas clave:
- La autenticación pasa por el uso explícito de ámbitos (scopes) y registros de aplicación. Ya no se conectan scripts «a lo loco» con privilegios excesivos.
- Las consultas y acciones dependen de los permisos mínimos otorgados (ejemplo: para obtener sucesos de inicio de sesión es necesario AuditLog.Read.All, que no incluye User.Read.All).
- El filtrado de información se hace en el servidor –mediante OData y parámetros como -Filter, -All y -Property–. Se acabaron los scripts que bajan todo y filtran localmente, lo que optimiza coste, velocidad y estabilidad.
- El control sobre la ejecución desatendida se basa ahora en certificados y secretos (más recomendado el primero, por seguridad y vencimientos). Esto obliga a una gestión activa de credenciales y una política de renovación preventiva.
- Las cuotas y límites de uso (throttling) se gestionan con lógica de reintentos, respetando la cabecera Retry-After de las respuestas 429.
Requisitos previos y consideraciones para empezar con Microsoft Graph PowerShell v3
Las versiones recomendadas de PowerShell para trabajar con Graph SDK son PowerShell 7 o superior para máxima compatibilidad, aunque PowerShell 5.1 sigue siendo válido en entornos Windows. Es indispensable disponer de una cuenta Microsoft 365 con los permisos apropiados, acceso a la galería de PowerShell (PSGallery) e idealmente un entorno actualizado (Microsoft Power Automate) en PowerShell 5.1).
La instalación de los módulos se realiza desde PowerShell con los comandos Install-Module. La autenticación requiere establecer correctamente los ámbitos (scopes) y realizar un registro de aplicación si se va a usar modalidad de aplicación exclusiva –esto se hace desde el portal de administración de Microsoft Entra/Azure–.
Permisos y seguridad: los pilares de la administración moderna con Graph
Toda acción en Microsoft Graph está fuertemente protegida por un modelo de permisos que diferencia entre permisos delegados y de aplicación. Los ámbitos determinan tanto qué datos se pueden leer o modificar como en qué contexto (interactivo o desatendido) se puede operar. El principio de mínimo privilegio es clave: nunca concedas más alcance del estrictamente necesario. La auditoría y el control del acceso están presentes en todo el flujo (se puede consultar quién, cuándo y cómo accedió a cada dato sensible).
Cómo determinar los permisos correctos
Microsoft Graph PowerShell SDK incluye cmdlets útiles como Find-MgGraphPermission y Find-MgGraphCommand para averiguar los permisos mínimos requeridos para cada comando o consulta. También existen tablas de referencia oficial donde se cruzan comandos, ámbitos y tipos de permisos.
Ajuste de rendimiento: paginación, filtrado y eficiencia
Todas las consultas en Graph están pensadas para ser paginadas por defecto. Un script que olvide el parámetro -All solo obtendrá la primera página, lo que puede dar errores o resultados incompletos en entornos de organización con cientos o miles de usuarios o recursos.
Para cuidar rendimiento y evitar cuellos de botella o throttling, debe usarse siempre:
- -Filter: para filtrar datos directamente en el servidor
- -Property: para limitar la cantidad de datos devueltos a solo las columnas realmente necesarias
- -All: para obtener resultados completos y paginados
Existen también relaciones y funciones avanzadas, como la consulta de campos mediante startsWith/endsWith, el uso de CountVariable para obtener solo el número de elementos, o trabajar con parámetros avanzados de consulta.
Desglose de componentes: qué recursos y datos permite gestionar Microsoft Graph
La fortaleza de Graph deriva de que puede unir en una sola fuente centralizada todo lo que importa dentro de Microsoft 365 y sus servicios asociados. Aquí tienes los principales recursos gestionables con PowerShell v3: Microsoft Azure y otros servicios en la nube están estrechamente ligados a las capacidades del SDK para automatizar todo el ecosistema.
- Usuarios y grupos: Gestión avanzada de perfiles, membresías de equipos, roles, licencias…
- Outlook: Acceso a correos, calendarios y contactos, además de programación de agendas.
- OneDrive y SharePoint: Manipulación de archivos, listas, bibliotecas y permisos.
- Teams: Creación y administración de canales, chats y miembros.
- Actividad y señales de uso: Consultas sobre comportamiento, actividad de colaboración y control de acceso.
- Dispositivos y endpoints: Inventario, configuración y seguridad de dispositivos conectados.
- Intune, Endpoint Manager, Seguridad: Administración de conformidad y estado de seguridad de endpoints y políticas empresariales.
Primeros pasos: instalación y conexión
Instalación del SDK de Microsoft Graph PowerShell
Instalar Graph SDK es muy sencillo si tienes acceso a Internet y permisos de administrador en tu sistema. El comando principal es:
Install-Module Microsoft.Graph -Scope CurrentUser
Para la modalidad beta (acceso a funcionalidades aún en desarrollo o no disponibles en la versión principal):
Install-Module Microsoft.Graph.Beta -Scope CurrentUser
Es posible instalar ambos módulos a la vez y utilizar sus cmdlets según tus necesidades.
Verificación y actualización de módulos
Tras la instalación, puedes comprobar qué versiones tienes disponibles con:
Get-InstalledModule Microsoft.Graph
Se recomienda mantener los módulos actualizados para aprovechar nuevas funcionalidades y parches de seguridad.
Requisitos de sistema
Funciona sobre versiones modernas de Windows (Windows 7 SP1 hasta Windows 11 y Windows Server 2008 R2 SP1 hasta 2022), aunque siempre es mejor usar versiones recientes. Se precisa una arquitectura de 64 bits.
Conexión básica (interactiva)
La conexión se realiza con:
Connect-MgGraph -Scopes «User.Read.All»,»Group.ReadWrite.All»
El sistema solicitará autenticación interactiva para los permisos indicados. Tras iniciar sesión, puedes comenzar a ejecutar comandos sobre tus recursos.
Conexión desatendida (proceso batch y automatización avanzada)
Para procesos programados o integración con sistemas externos, se utiliza la autenticación con registro de aplicación y certificado. Resumiendo el flujo:
- Registra la aplicación en el portal de Microsoft Entra.
- Concede permisos de aplicación (no delegados).
- Carga y configura un certificado.
- Concede el consentimiento de administrador para el inquilino (imprescindible para su uso sin interacción).
La conexión se establece vía:
Connect-MgGraph -ClientId TU_CLIENTE -TenantId TU_TENANT -CertificateThumbprint TU_THUMBPRINT
Revisa siempre que el certificado esté vigente y documenta los pasos de renovación si fuera necesario.
Casos de uso reales y recetas habituales con Microsoft Graph PowerShell v3
Inventario de usuarios y exportación a CSV
Una tarea frecuente es extraer el listado de usuarios para inventarios, auditorías o revisiones. Usando Get-MgUser, puedes generar informes muy personalizados, exportando a CSV cualquier combinación de campos. Es clave usar -Property para obtener solo las columnas necesarias y asegurarse de tener los permisos correctos (ciertos campos, como LastSuccessfulSignInDateTime, requieren permisos adicionales como AuditLog.Read.All).
Gestión avanzada de licencias
Una vez al mes, el control del uso de licencias evita compras innecesarias y garantiza la liberación de recursos cuando un usuario abandona la organización. Los comandos de Graph permiten automatizar este seguimiento y reducen costes IT y riesgos de compliance.
Proceso de baja y control de acceso
La baja de empleados o usuarios temporales requiere mucho más que desactivar una cuenta. Microsoft Graph PowerShell ofrece comandos para deshabilitar el inicio de sesión, revocar sesiones activas y garantizar que se traspasan los recursos críticos antes de eliminar cualquier identidad. Es fundamental entender la diferencia de permisos entre delegada y aplicación, y el rol adicional necesario para actuar sobre cuentas con privilegios elevados.
Automatización y monitorización de incidentes de seguridad
El módulo puede utilizarse para detectar usuarios de riesgo, listar eventos anómalos y automatizar la respuesta (confirmar usuarios comprometidos, descartar usuarios de riesgo, etc.), integrándose con Microsoft Entra ID Protection y respaldando flujos de trabajo de seguridad reactiva y proactiva.
Integración con Power Platform (Power Apps, Power Automate)
La capacidad de Graph para ofrecer datos y acciones sobre Microsoft 365 se potencia aún más cuando se integra con Power Platform. Por ejemplo:
- Aplicaciones internas: apps en Power Apps que muestran tareas, próximos eventos y documentos clave de cada usuario, en tiempo real y siempre contextualizados.
- Automatización avanzada: flujos de Power Automate que, por ejemplo, detectan la inclusión de un usuario en un grupo y automáticamente distribuyen manuales, permisos o notificaciones, sin intervención manual.
- Dashboards personalizados: monitorización de actividad, uso de licencias o señales de colaboración, tanto para recursos humanos como IT.
La interoperabilidad no se limita solo a la lectura de datos, sino que permite la automatización de procesos clave en la empresa, desde sistemas low-code hasta integraciones con herramientas personalizadas.
Mejores prácticas, lecciones aprendidas y recomendaciones
Separar registros de aplicación por uso
No uses una única aplicación para todo. Segmenta los registros (por ejemplo, uno solo para inventarios, otro para creación de cuentas, uno diferente para automatización de licencias). Esto limita el daño potencial en caso de incidente y facilita auditorías y revisiones periódicas de acceso.
Permisos mínimos y consentimiento consciente
No solicites ámbitos de más: escoge siempre la variante .Read para tareas de inventario, y solo añade .ReadWrite si necesitas modificar datos. El consentimiento del administrador, una vez concedido, permanece estable y seguro hasta que se cambian explícitamente los permisos del registro de aplicación.
Manejo de certificados y secretos
El uso de certificados es preferible a los secretos por seguridad. Apunta las fechas de caducidad en sistemas de seguimiento y documenta el proceso de renovación para evitar situaciones donde los automatismos fallan de golpe. Revisa el almacén de certificados según el usuario de ejecución (configuración de Windows Defender) para asegurar el acceso correcto desde servicios y procesos programados.
Gestión de throttling y errores
Ante una respuesta con HTTP 429, espera el tiempo indicado en Retry-After. Reintentar automáticamente está bien, pero es mejor reducir el volumen de llamadas filtrando bien en el servidor y optimizando las necesidades de datos de cada script.
Cómo usar Microsoft Power Automate a fondo: guía esencial con ejemplos y consejos en español







