Cómo informar el almacenamiento del canal de Teams con Microsoft Graph API y PowerShell
No es ningún secreto que Microsoft Teams utiliza SharePoint Online para almacenar archivos compartidos entre los miembros del equipo. Cada equipo tiene una biblioteca de documentos en el sitio de SharePoint Online propiedad del grupo de Microsoft 365 para el equipo y, cuando se crea un nuevo canal, se crea una carpeta para ese canal dentro de la biblioteca de documentos.
De forma predeterminada, el nombre de la carpeta del canal es el mismo que el del canal. Los detalles se pueden recuperar fácilmente mediante Exchange Online o PnP PowerShell. Sin embargo, las cosas se vuelven más complicadas cuando se cambia el nombre de un canal.
¿Qué hay en un nombre?
Actualmente, cuando se cambia el nombre de un canal, su carpeta no cambia (¡pero esperamos que lo haga pronto!), lo que dificulta encontrar la carpeta del canal. Los canales privados crean otra capa de complejidad debido a su sitio SharePoint Online asociado.
En las grandes organizaciones que utilizan Teams, generar informes y luego migrar estos datos es extremadamente difícil. Para ayudar a determinar cómo Teams usa SharePoint, he creado un script Graph API/PowerShell simple para informar los canales de Teams y sus ubicaciones de SharePoint en un archivo CSV (puede descargar el script desde GitHub aquí). Cada canal reporta la siguiente información:
- ID de equipo: el ID de objeto de Azure AD del equipo/grupo
- Nombre del equipo: el nombre del equipo.
- Nombre del canal: el nombre del canal.
- Tipo de canal: si el canal es estándar o privado
- URL de SharePoint: URL de la ubicación de almacenamiento del canal de Teams, incluida la ruta de la carpeta
- Almacenamiento utilizado (Bytes): el tamaño de almacenamiento actual de la carpeta.
En este artículo, lo guiaré a través de los pasos y le mostraré cómo puede ejecutar el informe usted mismo.
Crear un registro de aplicación
Dado que el script en cuestión utiliza Graph API, necesitamos un registro de aplicación para autenticar y autorizar nuestras consultas. Para configurar la aplicación registrada, querrás consultar este artículo que escribí anteriormente para otro script basado en Graph.
Una vez que haya hecho eso, debe otorgar permisos a la Aplicación para este script como se muestra en la Figura 1:
Ejecutando el guión
Para ejecutar el script, deberá descargarlo en su máquina local y ejecutarlo en PowerShell, proporcionando los siguientes parámetros:
- ClientID: el ID de la aplicación (cliente) del registro de la aplicación
- TenantID: el ID del directorio (inquilino) de su arrendamiento de Azure AD.
- ClientSecret: un secreto de cliente generado para el registro de su aplicación
- CSVPath: la ruta y el nombre del CSV de salida.
Con la información anterior, el script se puede ejecutar usando un comando como se muestra a continuación:
.\graph-Generate-Teams-Storage-Report.ps1 -ClientSecret $ClientSecret -ClientID $clientID -TenantID $TenantID -CSVPath ChannelReport.csvSi el script se ejecuta correctamente, no habrá resultados, pero siempre puede agregar su propia barra de progreso para entornos excepcionalmente grandes.
Revisar el resultado
Una vez finalizado el script, el archivo de salida debe mostrar una entrada de línea para cada equipo y cada canal, incluida la ubicación de la carpeta/biblioteca asociada y el almacenamiento utilizado. Está en formato CSV, por lo que es fácil de filtrar, se puede ordenar si es necesario y se puede guardar como una hoja de cálculo de Excel para realizar análisis más avanzados.
Cuando el nombre y el tipo del canal aparecen como "N/A", la entrada es para el equipo y no para un canal específico. Consulte el resultado de ejemplo en la Figura 3 para tener una idea de qué esperar:
Resumen
Este script es sencillo y proporciona información que, si bien no está oculta, puede resultar complicada de recopilar al intentar utilizar otras herramientas.
Esta información puede llegar a ser invaluable al auditar su almacenamiento en la nube, el uso de Teams o simplemente prepararse para una migración. Tener una forma rápida y sencilla de recuperar la información puede hacer la vida MUCHO más fácil.
Si falta algo en la salida, puede personalizar el script para agregarlo. Como siempre, antes de ejecutar, asegúrese de probar cualquier código en su entorno de producción para comprender completamente lo que hará.


