¡Hola a todos! En esta ocasión les traigo información introductoria para todos aquellos que les interese trabajar con el SDK de Microsoft Graph PowerShell y cómo podemos instalar el módulo de Microsoft Graph en PowerShell.

¿Qué es el SDK de Microsoft Graph PowerShell?

El SDK de Microsoft Graph PowerShell actúa como un contenedor para las API de Microsoft Graph, exponiendo todo el conjunto de API para su uso en PowerShell. Contiene un conjunto de comandos que lo ayudan a administrar identidades a escala, desde la automatización de tareas hasta la administración masiva de usuarios mediante Azure Active Directory (Azure AD). Ayudará a administrar cada función de Azure AD que tenga una API en Microsoft Graph. 


Nota: El SDK de Microsoft Graph PowerShell es el reemplazo del módulo Azure AD PowerShell y se recomienda para interactuar con Azure AD. El antiguo módulo de AzureAD, estará fuera de soporte a finales de 2022.



Características


El SDK de PowerShell de Microsoft Graph proporciona los siguientes beneficios:

  • Acceso a todas las API de Microsoft Graph, no solo a Azure Active Directory: El SDK de Microsoft Graph PowerShell se basa en la API de Microsoft Graph. La API de Microsoft Graph incluye, además de Azure AD, las API de otros servicios de Microsoft como SharePoint, Exchange, Outlook, etc., a los que se accede a través de un único punto final con un único token de acceso. Azure AD Graph PowerShell se basa en Azure AD Graph, que está en desuso. 
  • Compatibilidad multiplataforma y disponible en PowerShell 7 y versiones posteriores: El módulo Microsoft Graph PowerShell funciona con PowerShell 7 y versiones posteriores y en todas las plataformas, incluidas Windows, macOS y Linux. También es compatible con Windows PowerShell 5.1.
  • Admite la autenticación moderna: Microsoft Graph PowerShell admite la Biblioteca de autenticación de Microsoft (MSAL), que ofrece más seguridad que su contraparte de la Biblioteca de autenticación de Active Directory (ADAL) de Azure AD PowerShell.
  • Código abierto: Los equipos de características y la comunidad pueden crear excelentes experiencias de PowerShell y compartirlas con todos.


Requisitos para instalar el módulo Microsoft Graph PowerShell

Si tienes PowerShell 7 o una versión más reciente, no hay requisitos adicionales para poder utilizar el módulo de Microsoft Graph para PowerShell.

Para Windows PowerShell, los requisitos son los siguientes:

  • Actualizar a Windows PowerShell 5.1 o más reciente
  • Instalar .NET Framework 4.7.2 o más reciente
  • Actualizar el módulo PowerShellGet a la versión más reciente, puedes hacerlo ejecutando el siguiente comando:

Install-Module -Name PowerShellGet -Force 

  • La política de ejecución de script debe estar en modo "RemoteSigned", esto quiere decir que los scripts que son creados en el equipo local pueden ejecutarse sin ninguna restricción, sin embargo, requerirá una firma digital de un editor de confianza para los scripts y archivos de configuración que se descarguen desde Internet, lo que incluye programas de correo electrónico y mensajería instantánea. Para habilitar este modo, debemos ejecutar el siguiente comando:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser 


Descargar e Instalar el módulo de Microsoft Graph para PowerShell

Puedes descargar el modulo de Microsoft Graph para PowerShell desde la PowerShell Gallery o directamente puedes instalar la versión más reciente ejecutando el siguiente comando en PowerShell:


Install-Module -Name Microsoft.Graph 

Nota: Al instalar el módulo Microsoft.Graph, debemos tener en cuenta que el mismo incluye 38 sub-módulos. Por lo tanto, se recomienda solo instalar los necesarios, incluyendo el sub-módulo Microsoft.Graph.Authentication, el cual es instalado por defecto cuando decidimos instalar sub-módulos individualmente. Para poder ver todos los sub-módulos disponibles, debemos ejecutar el siguiente comando:

Find-Module Microsoft.Graph* 


Para verificar que se ha instalado el módulo correctamente, podemos utilizar el siguiente comando:

Get-InstalledModule Microsoft.Graph 

En mi caso, el resultado de esta consulta es el siguiente:

get installed module powershell


Conectar el módulo de Microsoft Graph para PowerShell

Antes de comenzar a utilizar el módulo, debemos tener en consideración que cada API en Microsoft Graph está protegida por uno o más ámbitos (Scopes) de permisos. Si un usuario inicia sesión, debe aceptar uno de los ámbitos (Scopes) requeridos para las API que desea usar. Para más información, favor consulta este enlace hacia el sitio web de Microsoft

Otra cosa a tener en cuenta, es que para conectar el módulo, debes iniciar sesión con una cuenta con permisos de administrador del tenant para poder aceptar los ámbitos (Scopes) requeridos.

Para conectar el módulo, ejecutamos el siguiente comando utilizando un Scope que nos permite leer información de todos los usuarios:

Connect-MgGraph -Scopes "User.Read.All" 

Desinstalando el módulo de Microsoft Graph para PowerShell

Cuando ya no necesites este módulo, debes seguir los siguientes pasos para desinstalar tanto el módulo principal, como los sub-módulos:

  1. Primero, use el siguiente comando para desinstalar el módulo principal:

  2. Uninstall-Module Microsoft.Graph 

  3. Luego, elimina todos los módulos de dependencia ejecutando los siguientes comandos:
Get-InstalledModule Microsoft.Graph.* | %{ if($_.Name -ne "Microsoft.Graph.Authentication"){ Uninstall-Module $_.Name } }
Uninstall-Module Microsoft.Graph.Authentication