Módulo de PowerShell de Microsoft Teams y como listar todos los Teams de un tenant

Después de una larga espera, a finales del año pasado se presentaba el Módulo de PorwerShell de Microsoft Teams. Para todos los que trabajamos con Teams supuso un paso importante en el crecimiento de esta herramienta nueva de Office 365, pero algunas carencias no tardaron en notarse.

La lista de cmdlets son los siguientes:

Add-TeamUser Añade un dueño o un miembro a un Team.
Connect-MicrosoftTeams Conecta una cuenta para ejecutar las solicitudes de los cmdlets.
Disconnect-MicrosoftTeams Desconecta la cuenta.
Get-Team Obtiene todos los Teams a los que pertenece un usuario.
Get-TeamChannel Obtiene todos los canales de un Team.
Get-TeamFunSettings Obtiene las opciones ‘divertidas’ de un Team.
Get-TeamGuestSettings Obtiene la configuración de acceso de externos de un Team.
Get-TeamHelp Obtiene la lista de comandos para Microsoft Teams.
Get-TeamMemberSettings Obtiene la configuración de un Team para sus miembros.
Get-TeamMessagingSettings Obtiene la configuración de un Team para los mensajes.
Get-TeamUser Obtiene la información de un usuario de un Team.
New-Team Provisiona un nuevo Team y crea un O365 Unified Group por detrás.
New-TeamChannel Añade un nuevo canal a un Team.
Remove-Team Elimina un Team.
Remove-TeamChannel Elimina un canal de un Team.
Remove-TeamUser Elimina un usuario dueño o un miembro de un Team y también del O365 Unified Group.
Set-Team Actualiza un Team.
Set-TeamChannel Actualiza un canal de un Team.
Set-TeamFunSettings Actualiza las opciones ‘divertidas’ de un Team.
Set-TeamGuestSettings Actualiza las opciones de acceso externo de un Team.
Set-TeamMemberSettings Actualiza las opciones de los miembros de un Team.
Set-TeamMessagingSettings Actualiza las opciones de mensajes de un Team.
Set-TeamPictures

 

Lo que sorprende en esta lista es no encontrar una forma de listar todos los Teams que tenemos en un Tenant, ya sea por razones de auditoria o de administración, y eso es lo que me ha llevado a escribir este artículo.

Se puede pensar que el comando Get-Team es el que tendría que devolver todos los Teams creados en el tenant, pero este solo devuelve a los que pertenece el usuario.

¿Cómo listar los Team de un tenant?

Por lo de ahora no hay ninguna forma oficial de hacerlo, pero si se han encontrado múltiples workarrounds que pueden devolvernos esa información:

ExchangeProvisioningFlags:481

Get-unifiedGroup -ResultSize Unlimited | ?{$_.ProvisioningOption -like "ExchangeProvisioningFlags:481"}

Esta opción puede no ser del todo fiable, ya que ExchangeProvisioningFlags puede excluir algún Team.

Informe de Teams habilitados en Office365 (Workarround)

$o365groups = Get-UnifiedGroup
foreach ($o365group in $o365groups) {
 try {
 $teamschannels = Get-TeamChannel -GroupId $o365group.ExternalDirectoryObjectId
 [pscustomobject]@{GroupId = $o365group.ExternalDirectoryObjectId; GroupName = $o365group.DisplayName; TeamsEnabled = $true}
 } catch {
 $ErrorCode = $_.Exception.ErrorCode
 switch ($ErrorCode) {
 "404" {
 [pscustomobject]@{GroupId = $o365group.ExternalDirectoryObjectId; GroupName = $o365group.DisplayName; TeamsEnabled = $false}
 break;
 }
 "403" {
 [pscustomobject]@{GroupId = $o365group.ExternalDirectoryObjectId; GroupName = $o365group.DisplayName; TeamsEnabled = $true}
 break;
 }
 default {
 Write-Error ("Unknown ErrorCode trying to 'Get-TeamChannel -GroupId {0}' :: {1}" -f $o365group, $ErrorCode)
 }
 }
 }
}

 

Informe de Teams (Git-Hub)

Script creado por un compañero de Microsoft que realiza los siguientes informes:

0) Connect to AzureAD and Office 365
1) Get Teams
 Properties: "GroupId","GroupName","WhenCreated","PrimarySMTPAddress","GroupGuestSetting","GroupAccessType","GroupClassification","GroupMemberCount","GroupExtMemberCount","SPOSiteUrl","SPOStorageUsed","SPOtorageQuota","SPOSharingSetting" 
2) Get Teams Membership
 Properties: "TeamID","TeamName","Member","Name","RecipientType","Membership" 
3) Get Teams That Are Not Active
 Properties: "TeamID","TeamName","PrimarySMTPAddress","MailboxStatus","LastConversationDate","NumOfConversations","SPOStatus","LastContentModified","StorageUsageCurrent" 
4) Get Users That Are Allowed To Create Teams
 Properties: "ObjectID","DisplayName","UserPrincipalName","UserType" 
5) Get Teams Tenant Settings
 Settings captured: Azure AD Group Settings, Who's Allowed to Create Teams, Guest Access, Expiration Policy 
6) Get All Above Reports
7) Exit Script

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

A %d blogueros les gusta esto: