Introducción al SDK de PowerShell de Microsoft Graph

En esta guía, usará el SDK de PowerShell de Microsoft Graph para realizar algunas tareas básicas. Si aún no ha instalado el SDK,debe hacerlo antes de seguir esta guía.

Versión de API

De forma predeterminada, el SDK usa microsoft Graph API de REST v1.0. Puede cambiar esto mediante el Select-MgProfile comando.

Select-MgProfile -Name "beta"

Autenticación

El SDK de PowerShell admite dos tipos de autenticación: acceso delegado y acceso de solo aplicación. En esta guía, usará el acceso delegado para iniciar sesión como usuario, concederá el consentimiento al SDK para que actúe en su nombre y llamará a microsoft Graph.

Para obtener más información sobre cómo usar el acceso de solo aplicación para escenarios desatendidos, vea Use app-only authentication with the Microsoft Graph PowerShell SDK.

Determinar los ámbitos de permisos necesarios

Cada API de Microsoft Graph está protegida por uno o más ámbitos de permisos. El usuario que inicia sesión debe dar su consentimiento a uno de los ámbitos necesarios para las API que tiene previsto usar. En este ejemplo, usaremos las siguientes API.

El User.Read.All ámbito de permisos habilitará las dos primeras llamadas y el ámbito Group.ReadWrite.All habilitará el resto. Estos permisos requieren una cuenta de administrador.

Iniciar sesión

Use el Connect-MgGraph comando para iniciar sesión con los ámbitos necesarios. Tendrás que iniciar sesión con una cuenta de administrador para dar su consentimiento a los ámbitos necesarios.

Connect-MgGraph -Scopes "User.Read.All","Group.ReadWrite.All"

El comando le pide que vaya a una página web para iniciar sesión con un código de dispositivo. Una vez hecho esto, el comando indica que se ha realizado correctamente con un Welcome To Microsoft Graph! mensaje. Solo tiene que hacerlo una vez por sesión.

Sugerencia

Para agregar permisos adicionales, repita el Connect-MgGraph comando con los nuevos ámbitos de permisos.

Llamar a Microsoft Graph

Ahora que ha iniciado sesión, puede empezar a realizar llamadas a Microsoft Graph.

Obtener el usuario que ha iniciado sesión

En esta sección, localizará al usuario que ha iniciado sesión y obtiene su identificador de usuario. Necesitarás que se use como parámetro para los demás comandos que usarás más adelante. Comience ejecutando el siguiente comando.

Get-MgUser

Esto genera una lista de usuarios de la Microsoft 365 organización.

Id                                   DisplayName              Mail                                  UserPrincipalName
--                                   -----------              ----                                  -----------------
88d1ba68-8ff5-4de2-90ed-768c00abcfae Conf Room Adams          Adams@contoso.onmicrosoft.com         Adams@contoso.…
3103c7b9-cfe6-4cd3-a696-f88909b9a609 Adele Vance              AdeleV@contoso.OnMicrosoft.com        AdeleV@contoso…
da3a885e-2d97-41de-9347-5271ef321b58 MOD Administrator        admin@contoso.OnMicrosoft.com         admin@contoso.…
e0c6ee40-e105-476d-9597-acd061d21fcb Alex Wilber              AlexW@contoso.OnMicrosoft.com         AlexW@contoso.…
17c6bdee-8ed3-49af-a65e-71b64cca8382 Allan Deyoung            AllanD@contoso.OnMicrosoft.com        AllanD@contoso…
e5b78950-27cd-4f01-b083-eab4da97ca6a Conf Room Baker          Baker@contoso.onmicrosoft.com         Baker@contoso.…
40467725-1a58-495d-9e2f-5970c6306d8d Bianca Pisani                                                  BiancaP@contoso…
ce73bdb5-bf12-405e-ab85-40122fdd6eb7 Brian Johnson (TAILSPIN) BrianJ@contoso.onmicrosoft.com        BrianJ@contoso…
df1347a3-7ce7-4b4d-8aab-7c65b5c907b9 Cameron White                                                  CameronW@contoso…

Puede usar un filtro OData para ayudar a localizar el usuario específico que desee. Ejecute el siguiente comando, reemplazando por el nombre para mostrar del usuario con el Megan Bowen que ha iniciado sesión.

$user = Get-MgUser -Filter "displayName eq 'Megan Bowen'"

Compruebe que ha funcionado especificando lo siguiente.

$user.DisplayName

Enumerar los elementos unidos del Teams

Ahora use el identificador del usuario como parámetro para el Get-MgUserJoinedTeam comando.

Get-MgUserJoinedTeam -UserId $user.Id

Al igual que Get-MgUser el comando, esto proporciona una lista de Teams. Seleccione uno de los elementos unidos del Teams y úselo para DisplayName filtrar la lista.

$team = Get-MgUserJoinedTeam -UserId $user.Id -Filter "displayName eq 'Sales and Marketing'"

Enumerar canales de equipo

Ahora usa el identificador del equipo como parámetro para el comando, siguiendo un patrón similar de enumerar todos los canales y luego filtrando la lista para obtener el canal específico Get-MgTeamChannel que quieras.

Get-MgTeamChannel -TeamId $team.Id
$channel = Get-MgTeamChannel -TeamId $team.Id -Filter "displayName eq 'General'"

Enviar un mensaje

Ahora que tiene el id. de equipo y el id. de canal, puede publicar un mensaje en el canal. Use el siguiente comando para enviar el mensaje.

New-MgTeamChannelMessage -TeamId $team.Id -ChannelId $channel.Id -Body @{ Content="Hello World" }

Este comando difiere de los comandos anteriores que usó. En lugar de simplemente consultar datos, realmente está creando algo. En Microsoft Graph, esto se traduce en http y requiere un POST objeto en el cuerpo de esa publicación. En este caso, el objeto es un chatMessage. Tenga en cuenta -Body que el parámetro del comando se asigna a la propiedad en body chatMessage . Otras propiedades se asignan de forma similar, por lo que puede cambiar el mensaje que envía. Por ejemplo, para enviar un mensaje urgente, use el siguiente comando.

New-MgTeamChannelMessage -TeamId $team.Id -ChannelId $channel.Id -Body @{ Content="Hello World" } -Importance "urgent"

Cerrar sesión

Use el Disconnect-MgGraph comando para cerrar sesión.

Disconnect-MgGraph

Pasos siguientes