Manejando Microsoft Teams con PowerShell

Escrito por Rubén Ramos Mateo - 28/05/2019

Tras mucho tiempo en beta y preview, recientemente se ha liberado la versión GA del modulo PowerShell para Microsoft Teams

Instalando el módulo PowerShell para Microsoft Teams

Lo primero que tenemos que hacer es instalar el módulo PowerShell para Teams, para ello abre Windows PowerShell como administrador y ejecuta:

Install-Module MicrosoftTeams

Una vez instalado, podemos comprobarlo ejecutando:

Get-Module MicrosoftTeams -ListAvailable

Imagen 1.- Instalación correcta del módulo de PowerShell para Teams.

Para ver los comandos disponibles, podemos ejecutar:

Get-Command -Module MicrosoftTeams

Imagen 2.- Listado de los comandos disponibles.

O bien mostrar la ayuda con el comando Get-TeamHelp:

Imagen 3.- Cmdlet de ayuda para obtener los cmdlets de Microsoft Teams.

Conectando a Microsoft Teams

Como es normal primero vamos a tener que conectarnos a Teams, para ello ejecutamos:

Connect-MicrosoftTeams

Una vez introducidas las credenciales nos mostrará información sobre nuestro tenant:

Imagen 4.- Resultado de la conexión a Teams con PowerShell.

Creando un nuevo Team

Para crear un nuevo Team utilizaremos el comando New-Team, podemos crear un Team indicando el nombre del Team en el parámetro DisplayName, o bien asignando el Team a un grupo de Office 365 existente con el parámetro GroupId.

Por ejemplo, para crear un Team que se llame "Team from PowerShell" ejecutaremos:

New-Team -DisplayName "Team from PowerShell"

Imagen 5.- Resultado de la creación de un nuevo Team.

Como vemos en la imagen por defecto nos crea el Team como privado, pero podemos personalizar la creación modificando los parámetros

New-Team

   -DisplayName <String>

   [-Description <String>]

   [-MailNickName <String>]

   [-Classification <String>]

   [-Visibility <String>]

   [-Template <String>]

   [-Owner <String>]

   [-AllowGiphy <Boolean>]

   [-GiphyContentRating <String>]

   [-AllowStickersAndMemes <Boolean>]

   [-AllowCustomMemes <Boolean>]

   [-AllowGuestCreateUpdateChannels <Boolean>]

   [-AllowGuestDeleteChannels <Boolean>]

   [-AllowCreateUpdateChannels <Boolean>]

   [-AllowDeleteChannels <Boolean>]

   [-AllowAddRemoveApps <Boolean>]

   [-AllowCreateUpdateRemoveTabs <Boolean>]

   [-AllowCreateUpdateRemoveConnectors <Boolean>]

   [-AllowUserEditMessages <Boolean>]

   [-AllowUserDeleteMessages <Boolean>]

   [-AllowOwnerDeleteMessages <Boolean>]

   [-AllowTeamMentions <Boolean>]

   [-AllowChannelMentions <Boolean>]

   [<CommonParameters>]

Para poder listar los Teams que tenemos utilizaremos el comando Get-Team, que nos mostrará información de todos los Teams. O si lo que queremos es obtener las propiedades de un Team en particular podemos ejecutar

Get-Team -GroupId 3011ee13-ed98-4faf-9150-155eb07d4d57

Imagen 6.- Uso de Get-Team para acceder a la información de un Team concreto.

O bien ejecutarlo de esta manera para obtener todas las propiedades del Team:

Get-Team -GroupId 3011ee13-ed98-4faf-9150-155eb07d4d57 | Format-List

Imagen 7.- Propiedades de un Team.

Manejando canales

Ahora que ya tenemos creado nuestro Team vamos a agregar algún canal, esto lo hacemos con el comando New-TeamChannel:

New-TeamChannel -GroupId 8511ccf1-41f2-41d6-a7dc-5f31d6a8703a -DisplayName "New Channel"

Imagen 8.- Creación de un nuevo canal en un Team.

Y si vamos a la aplicación de Teams veremos nuestro canal:

Imagen 9.- Visualización del canal creado.

También podemos modificar el nombre de un canal con el comando Set-TeamChannel

Set-TeamChannel -GroupId 8511ccf1-41f2-41d6-a7dc-5f31d6a8703a -CurrentDisplayName "New Channel" -NewDisplayName "Channel name updated"

Imagen 10.- Canal actualizado.

Manejando miembros del Team

Desde PowerShell también vamos a poder gestionar los miembros del equipo, por ejemplo, para listar los miembros de un Team ejecutaremos el comando Get-TeamUser

Get-TeamUser -GroupId 8511ccf1-41f2-41d6-a7dc-5f31d6a8703a

Imagen 11.- Acceso a los integrantes de un Team.

También vamos a poder añadir y eliminar miembros de un Team:

Add-TeamUser -GroupId 8511ccf1-41f2-41d6-a7dc-5f31d6a8703a -User usertest@tenant.onmicrosoft.com -Role Member

 

Remove-TeamUser -GroupId 8511ccf1-41f2-41d6-a7dc-5f31d6a8703a -User usertest@tenant.onmicrosoft.com

 

Personalizando un Team

Una vez que tengamos el Team creado vamos a poder configurarlo con el comando Set-Team. Tenemos disponibles las siguientes opciones:

Set-Team

   -GroupId <String>

   [-DisplayName <String>]

   [-Description <String>]

   [-MailNickName <String>]

   [-Classification <String>]

   [-Visibility <String>]

   [-AllowGiphy <Boolean>]

   [-GiphyContentRating <String>]

   [-AllowStickersAndMemes <Boolean>]

   [-AllowCustomMemes <Boolean>]

   [-AllowGuestCreateUpdateChannels <Boolean>]

   [-AllowGuestDeleteChannels <Boolean>]

   [-AllowCreateUpdateChannels <Boolean>]

   [-AllowDeleteChannels <Boolean>]

   [-AllowAddRemoveApps <Boolean>]

   [-AllowCreateUpdateRemoveTabs <Boolean>]

   [-AllowCreateUpdateRemoveConnectors <Boolean>]

   [-AllowUserEditMessages <Boolean>]

   [-AllowUserDeleteMessages <Boolean>]

   [-AllowOwnerDeleteMessages <Boolean>]

   [-AllowTeamMentions <Boolean>]

   [-AllowChannelMentions <Boolean>]

   [<CommonParameters>]

Por ejemplo, podemos desactivar la opción para añadir gifs ejecutando:

Set-Team -GroupId 8511ccf1-41f2-41d6-a7dc-5f31d6a8703a -AllowGiphy $false

Imagen 12.- Desactivando la opción de GIFs.

Eliminando canales y Teams​

Podemos eliminar canales de un Team con el comando Remove-TeamChannel, por ejemplo

Remove-TeamChannel -GroupId 8511ccf1-41f2-41d6-a7dc-5f31d6a8703a -DisplayName "Channel name updated"

Y también podemos eliminar Teams con Remove-Team, por ejemplo:

Remove-Team -GroupId 8511ccf1-41f2-41d6-a7dc-5f31d6a8703a

Conclusión

En esta versión 1.0 del módulo de PowerShell para Teams nos encontramos con diferencias con la última versión 0.96, por ejemplo, se han unificado los comandos para configurar las distintas opciones del Team en Set-Team.

Aunque estamos en la versión 1.0 del módulo, echo de menos comandos para poder manejar tabs y apps, esperemos que Microsoft lo vaya incorporando en futuras versiones. De todas formas, siempre podemos utilizar Graph.

 

Rubén Ramos Mateo
Technical Architect en Ricoh
ruben_rm@outlook.com
@rubenr79

https://rubenrm.com/

***