/

Microsoft Graph API con Windows PowerShell: supervisa y gestiona clientes de Microsoft 365

por Team Ninja
Using Microsoft Graph API with Windows PowerShell to Monitor and Manage Microsoft 365 Clients blog banner image
Using Microsoft Graph API with Windows PowerShell to Monitor and Manage Microsoft 365 Clients blog banner image

Prueba nuestro software de gestión de endpoints n.º 1 en G2

Sin necesidad de tarjeta de crédito, acceso completo a todas las funciones.

Webinar

Actualizaciones de NinjaOne 12.0: todo lo que necesitas saber

Automatiza las aspectos más complejos de la TI

Microsoft Graph API es un endpoint unificado que da a los administradores acceso programático a distintos servicios de Microsoft 365, como Intune, Microsoft Entra (antes conocido como Azure AD), Exchange Online, Teams y muchos más, a través de Windows PowerShell.

Tiene multitud de casos de uso, sobre todo en entornos empresariales. Microsoft Graph API te sirve para:

  • Supervisar el cumplimiento y el estado de los dispositivos
  • Controlar el uso y la asignación de licencias
  • Gestionar políticas y grupos de forma automatizada
  • Crear flujos de alertas y remediación
  • Generar informes multitenant para los paneles de los MSP

📌 Requisitos previos:

  • Debes contar con un tenant de Microsoft 365 con acceso de administrador global o de administrador delegado.
  • Tendrás que registrar Microsoft Graph en Microsoft Entra (antes conocido como Azure AD).
  • Puede que necesites licencias de Intune y Microsoft Entra Premium para algunas acciones.
  • Necesitarás una base de GPO para proteger tus tokens de autenticación y garantizar que la ejecución de tus scripts sea segura.

📌 Estrategias de implementación recomendadas:

Haz clic para elegir un método

💻
Ideal para usuarios individuales
💻💻💻
Ideal para empresas
Instalar el SDK de Microsoft Graph PowerShell✓
Conectarte al SDK de Microsoft Graph PowerShell✓
Obtener información de dispositivos y su estado de cumplimiento✓
Supervisar la actividad de los usuarios y las licencias✓
Automatizar la remediación y la aplicación de políticas✓
Validar políticas en el propio endpoint (Registro de Windows, CMD)✓
Proteger el uso de tokens con GPO y controles en el endpoint✓

Cómo instalar el SDK de Microsoft Graph PowerShell

📌Requisitos previos:

  • Se recomienda usar Windows PowerShell 7 o posterior. El requisito mínimo es Windows PowerShell 5.1. (Comprueba tu versión de PowerShell )
  • Necesitas tener instalado .NET Framework 4.7.2 o posterior.
  • PowerShellGet debe estar actualizado a la última versión. Para hacerlo, escribe Install-Module PowerShellGet en Windows PowerShell y pulsa Intro.
  • La política de ejecución debe estar configurada como remote signed o menos restrictiva. Para comprobar si tienes la política correcta, escribe Get-ExecutionPolicy en Windows PowerShell y pulsa Intro. Para cambiar la política de ejecución a remote signed, escribe Set-ExecutionPolicy -ExecutionPolicy RemoteSigned y pulsa Intro.

Pasos:

  1. Abre el menú Inicio y busca Windows PowerShell.
  2. Haz clic derecho en Windows PowerShell > Ejecutar como administrador.
  3. Escribe Install-Module Microsoft.Graph -Scope CurrentUser -Repository PSGallery -Force y pulsa Intro.

💡Nota: este cambio solo se aplicará al perfil del usuario actual. Si quieres instalar el SDK de Microsoft Graph PowerShell en todos los perfiles de usuario, cambia -Scope a AllUsers.

  1. Confirma la instalación cuando se te solicite.

Cómo conectarte al SDK de Microsoft Graph PowerShell

  1. Escribe Connect-MgGraph -Scopes "User.Read.All",»DeviceManagementManagedDevices.Read.All»,»Directory.Read.All» en Windows PowerShell y pulsa Intro para conectarte.

💡Nota: esto te dará acceso a todo Graph. Puedes ajustar los permisos según tus necesidades editando los que aparecen después de -Scopes. Para consultar todos los permisos disponibles, escribe Find-MgGraphCommand -command Get-MgGroup.

  1. Si ya has iniciado sesión, pasa al siguiente paso. Si no, sigue las indicaciones para iniciar sesión.
  2. También puedes usar Get-MgContext para obtener datos concretos, como el Client ID, el tenant ID, los scopes consentidos y más.

💡Nota: puedes usar -TenantID para el acceso multitenant y -ClientID para aplicaciones registradas.

Cómo obtener información de dispositivos y su estado de cumplimiento

Para listar todos tus dispositivos gestionados con Intune, escribe este comando y pulsa Intro:

Get-MgDeviceManagementManagedDevice |
Select DisplayName, ComplianceState, OperatingSystem

Si quieres localizar los dispositivos no conformes dentro de esa lista, escribe este comando y pulsa Intro:

Get-MgDeviceManagementManagedDevice |
Where-Object {$_.ComplianceState -ne «compliant»}

También puedes buscar dispositivos concretos por su nombre:

Get-MgDeviceManagementManagedDevice -ManagedDeviceId <GUID>

Cambia <GUID> por el ID del dispositivo que estés buscando.

Cómo supervisar la actividad de los usuarios y las licencias

Para listar todos los usuarios junto con los detalles de sus licencias, escribe este comando y pulsa Intro:

Get-MgUser | Select-Object DisplayName, UserPrincipalName, AssignedLicenses

Para encontrar usuarios sin licencia, escribe este comando y pulsa Intro:

Get-MgUser | Where-Object { !$_.AssignedLicenses }
Obtener la actividad de inicio de sesión (requiere AuditLog.Read.All):
Get-MgAuditLogSignIn -Top 50 | Select UserDisplayName, UserPrincipalName, Status, AppDisplayName

Cómo automatizar la remediación y la aplicación de políticas

Si un dispositivo se pierde o se ve comprometido, puedes borrar sus datos desde Microsoft Graph escribiendo este comando y pulsando Intro:

Invoke-MgDeviceManagementManagedDeviceWipe -ManagedDeviceId <GUID>

Sustituye <GUID> por el ID del dispositivo perdido o comprometido.

Si quieres bloquear un dispositivo de forma remota:

Invoke-MgDeviceManagementManagedDeviceRemoteLock -ManagedDeviceId <GUID>

Sustituye <GUID> por el ID del dispositivo perdido o comprometido.

Si quieres asignar una política de cumplimiento, escribe este comando y pulsa Intro:

New-MgDeviceManagementCompliancePolicyAssignment -CompliancePolicyId <PolicyID> -Target @{ «@odata.type» = «#microsoft.graph.groupAssignmentTarget»; «groupId» = «<AADGroupId>» }

Cambia <PolicyID> por el ID de la política que quieras asignar. Cambia <AADGroupId> por el grupo al que quieras asignarla.

Estos comandos resultan muy útiles si quieres configurar remediaciones automatizadas en distintos entornos. También puedes lanzarlos de forma automática cuando tu sistema reciba una alerta de tu herramienta de gestión de endpoints.

Cómo validar políticas en el propio endpoint (Registro de Windows, CMD)

Puedes comprobar si las políticas emitidas con Microsoft Graph se aplicaron correctamente consultando el Registro de Windows.

Por ejemplo, puedes ir a HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PolicyManager\current\device\ en el Registro de Windows y ver si las políticas se han aplicado (por ejemplo, Defender o la política de cifrado).

También puedes usar el símbolo del sistema para inscribir el dispositivo en un MDM y supervisar su estado con más detalle.

  1. Abre el símbolo del sistema como administrador.
  2. Escribe esto y pulsa Intro: start ms-device-enrollment:?mode=mdm

Para verificar el estado de unión o inscripción, escribe: dsregcmd /status

Cómo proteger el uso de tokens con políticas de grupo locales y controles en el endpoint

Puedes usar las políticas de grupo locales para proteger los tokens de autenticación de Microsoft Graph y la automatización con PowerShell en tus dispositivos gestionados siguiendo estos pasos:

  1. Abre el Editor de políticas de grupo local.
  2. Ve a Configuración del equipo > Configuración de Windows > Configuración de seguridad > Directivas locales > Opciones de seguridad
  3. Busca No permitir el almacenamiento de contraseñas y credenciales para la autenticación de red y haz doble clic.
  4. Configúralo como Habilitado.
  5. Haz clic en Aplicar > Aceptar.
  6. Ve a Configuración del equipo > Plantillas administrativas > Componentes de Windows > Windows PowerShell.
  7. Busca Activar la ejecución de scripts y haz doble clic.
  8. Configúralo como Habilitado.
  9. Despliega el menú y selecciona Permitir solo scripts firmados.
  10. Haz clic en Aplicar > Aceptar.

Otros aspectos a tener en cuenta al usar Microsoft Graph API

  • Puedes usar Graph Explorer para probar la API online sin instalarla en tus dispositivos.
  • Asegúrate de aplicar permisos de aplicación para los trabajos en segundo plano y los scripts multitenant.
  • Puedes aplicar límites de frecuencia y lógica de reintentos en los scripts de producción.
  • Puedes usar las políticas de acceso condicional de Microsoft Entra ID para restringir el uso de Graph en dispositivos no gestionados.

Resolución de problemas de Microsoft Graph API

ProblemaPosibles causasSoluciones
Microsoft Graph falla.Faltan permisos, es decir, el tenant no tiene autorización para ejecutar ese comando.Concede a ese tenant los permisos adecuados. Otra opción es usar una cuenta de administrador con permisos completos.
El dispositivo no aparece en la consulta.Significa que el dispositivo no está gestionado en Intune o que no está bien sincronizado.Comprueba la inscripción en Microsoft Endpoint Management (MEM) y el estado del dispositivo en Microsoft Entra (antes AAD).
Has alcanzado el límite de frecuencia de la API.Se están realizando demasiadas consultas simultáneas.Usa el comando -Top y agrupa las peticiones por lotes.
Faltan los valores del Registro de una política concreta.La política no se aplicó.Valida la segmentación de grupos y fuerza una sincronización para aplicar el cambio en el dispositivo.

Servicios de NinjaOne

NinjaOne complementa a Microsoft Graph API de varias formas:

Supervisa tus dispositivos gestionados con Microsoft Graph API

Microsoft Graph API es una herramienta potente que da a los administradores un control centralizado y automatizado de las cuentas de Microsoft 365 de su organización desde Windows PowerShell. Una vez instalado y conectado mediante PowerShell, puedes supervisar usuarios y el cumplimiento de los dispositivos, así como automatizar acciones en los equipos y la asignación de políticas.

Puedes validar esas asignaciones de políticas consultando el Registro de Windows y usando el símbolo del sistema. Además, puedes mejorar aún más tus flujos de trabajo con las funciones de automatización y visibilidad de NinjaOne.

Artículos relacionados:

Guía de inicio rápido

Qué puede hacer NinjaOne con Microsoft Graph API y Windows PowerShell:

Integración con Microsoft Graph API

NinjaOne sí admite la integración con Microsoft Graph API y PowerShell, en concreto para:

  1. Autenticación con Service Principal (SPA):
    • NinjaOne ofrece autenticación con Service Principal para las copias de seguridad de Microsoft 365
    • Requiere un administrador global durante la configuración inicial
    • Admite distintos scopes y permisos para los diferentes servicios de Microsoft 365
  2. Integración con PowerShell:
    • NinjaOne proporciona módulos y scripts de PowerShell para interactuar con la API
    • Admite el flujo de autorización OAuth 2.0
    • Incluye scripts de ejemplo para automatizar tareas como:
      • Gestión de vulnerabilidades
      • Generación de tokens
      • Gestión de peticiones a la API

Aspectos clave

  • La integración permite supervisar y gestionar clientes de Microsoft 365
  • Admite operaciones como:
    • Copia de seguridad y restauración
    • Gestión de usuarios
    • Obtención de información de dispositivos
    • Autorización y gestión de tokens

Quizá también te interese...

¿Listo para simplificar los aspectos más complejos de las TI?