/
/

Cómo obtener informes de tamaño de buzones con PowerShell a gran escala

por Team Ninja
How to Get Mailbox Size Reports with PowerShell at Scale blog banner image

Resumen instantáneo

Este post ofrece una lista completa de comandos CMD básicos y una inmersión profunda en los comandos de Windows, con más de 70 comandos cmd esenciales tanto para principiantes como para usuarios avanzados. Explica comandos prácticos del símbolo del sistema para la gestión de archivos, la navegación por directorios, la solución de problemas de red, las operaciones de disco y la automatización con ejemplos reales para mejorar la productividad. Tanto si estás aprendiendo los comandos básicos de cmd como si ya dominas las herramientas avanzadas de la CLI de Windows, esta guía te ayudará a utilizar el Símbolo del sistema de forma más eficaz.

Puntos clave

  • Recopila datos fiables de los buzones: ejecuta Get-MailboxStatistics en PowerShell para capturar el tamaño del buzón, el número de elementos y la fecha del último inicio de sesión directamente desde Exchange Online.
  • Incluye la información de cuota y archivo: combina las estadísticas de los buzones con Get-EXOMailbox para conocer los límites de cuota, el uso del archivo y el espacio total ocupado.
  • Aplica el muestreo por carpetas a los buzones grandes: ejecuta Get-MailboxFolderStatistics en los buzones demasiado grandes o de alto riesgo para identificar el origen del crecimiento o los problemas de retención.
  • Normaliza y exporta de forma coherente: convierte los tamaños a GB, añade metadatos (tenant, marca de tiempo, versión del script) y exporta a CSV o JSON para seguir las tendencias con facilidad.
  • Automatiza a gran escala con medidas de protección: usa autenticación solo de aplicación, control de la limitación y lógica de reintentos para las tareas desatendidas en entornos grandes o multitenant.

Los informes de tamaño de buzones ayudan a los MSP a planificar la capacidad, validar restauraciones y marcar los plazos de una investigación en entornos de Exchange Online. PowerShell ofrece métricas directas del lado del servidor que revelan el tamaño real del buzón, el número de elementos y el uso del archivo, sin depender de lo que muestra el cliente.

Esta guía explica cómo usar Get-Mailboxstatistics y otros cmdlets de Exchange Online para generar informes precisos del tamaño de buzones de Office 365 con PowerShell a gran escala en un MSP. Verás cómo incluir los datos de cuota, el contexto del archivo y el muestreo por carpetas, y después normalizar los resultados para la automatización, las auditorías y las QBR mensuales.

Pasos para obtener informes de tamaño de buzones con PowerShell a gran escala

Un informe de tamaño de buzones debe extraer las estadísticas del lado del servidor y el contexto de cuota directamente de Exchange Online. Estos informes también sirven de apoyo a la planificación de migraciones, de modo que los equipos puedan migrar buzones de Exchange Online sin tiempo de inactividad.

📌 Requisitos previos:

  • Necesitarás el módulo de PowerShell de Exchange Online (EXO) y permisos para leer las propiedades y estadísticas de los buzones.
  • Hace falta un almacenamiento seguro de credenciales o autenticación solo de aplicación configurada para ejecuciones desatendidas.
  • Necesitarás una ruta central donde se escriban de forma coherente los archivos CSV, JSON (JavaScript Object Notation) y los registros de ejecución.
  • De forma opcional, hace falta una lista de buzones objetivo para el muestreo por carpetas en los análisis más detallados.

Paso 1: inventariar el tamaño de los buzones de forma eficiente

Empieza recopilando las estadísticas de los buzones de Exchange Online para establecer una base limpia de informes. Este paso te permite capturar las métricas de tamaño y los tipos de buzón para analizar más adelante cuotas, archivos y crecimiento.

📌 Casos de uso:

  • Crea una base fiable con Get-MailboxStatistics para auditorías, QBR o migraciones de tenant.
  • Distingue entre buzones de usuario, compartidos y de recursos para planificar cuotas y capacidad con precisión.

📌 Requisitos previos:

  • Necesitarás el módulo de PowerShell de Exchange Online (EXO V3) instalado y acceso para ejecutar comandos de estadísticas de buzones.
  • Hacen falta credenciales de administrador o autenticación solo de aplicación para conectarte de forma segura a Exchange Online.

Proceso paso a paso:

  1. Conéctate a Exchange Online PowerShell.
  2. Ejecuta Get-MailboxStatistics y selecciona solo los campos necesarios, como TotalItemSize, ItemCount, LastLogonTime y Database.
  3. Exporta los resultados a formato CSV o JSON como punto de partida.
  4. Incluye una columna con el tipo de buzón para separar los de usuario, los compartidos y los de recursos.
  5. Guarda la exportación en una ubicación central para poder compararla en ejecuciones posteriores.

Paso 2: añadir el contexto de cuota y archivo

Mejora el informe base combinando las estadísticas de los buzones con los datos de cuota y archivo. Así tendrás visibilidad del uso de almacenamiento, de los posibles excesos y del tamaño real que ocupan los buzones en todo el tenant.

📌 Casos de uso:

  • Ayuda a identificar a los usuarios que están cerca del límite de cuota o que ya lo han superado.
  • Da visibilidad completa del tamaño de los buzones de Exchange Online al incluir los datos del buzón de archivo junto con el almacenamiento principal.

📌 Requisitos previos:

  • Necesitarás permisos adicionales para consultar las propiedades de los buzones con el cmdlet Get-EXOMailbox.
  • Hace falta acceso tanto a las estadísticas como a las propiedades de los buzones para poder combinarlas en PowerShell.

Comando de PowerShell:

Get-EXOMailbox | 
Select-Object DisplayName, IssueWarningQuota, ProhibitSendQuota, ArchiveStatus

Esto recupera la información de cuota y archivo de los buzones de Exchange Online para combinarla con la salida de Get-MailboxStatistics y obtener un informe de almacenamiento completo.

Paso 3: muestreo opcional por carpetas para mayor profundidad

El muestreo por carpetas aporta información sobre los patrones de crecimiento de los buzones y ayuda a explicar por qué algunos consumen más almacenamiento de lo esperado.

📌 Casos de uso:

  • Analiza qué carpetas contribuyen más al crecimiento del buzón para elaborar informes y previsiones precisas.
  • Facilita la investigación de un uso anómalo del almacenamiento, de la acumulación en la carpeta de recuperación o de excesos de cuota.

📌 Requisitos previos:

  • Necesitarás permisos avanzados para ejecutar Get-MailboxFolderStatistics en los buzones objetivo.
  • Hace falta una exportación base que identifique los buzones más grandes o más críticos.

Comando de PowerShell:

$largest = (Import-Csv .\MailboxSize_Baseline.csv |
Sort-Object TotalItemSize -Descending |
Select-Object -First 20 -ExpandProperty Mailbox)
$null = New-Item -ItemType Directory -Path .\FolderSamples -Force
foreach ($mbx in $largest) {
$top = Get-MailboxFolderStatistics -Identity $mbx -FolderScope All |
Select-Object FolderPath, ItemsInFolder, FolderSize |
Sort-Object ItemsInFolder -Descending |
Select-Object -First 10
$ri = Get-MailboxFolderStatistics -Identity $mbx -FolderScope RecoverableItems |
Select-Object FolderPath, ItemsInFolder, FolderSize
$top | Export-Csv ".\FolderSamples\$($mbx)_TopFolders.csv" -NoTypeInformation
$ri | Export-Csv ".\FolderSamples\$($mbx)_RecoverableItems.csv" -NoTypeInformation
}

Este comando toma una muestra de las estadísticas de carpetas de los buzones más grandes y captura las carpetas principales y los elementos recuperables para localizar el origen del crecimiento y el impacto de la retención.

Paso 4: normalizar, etiquetar y almacenar los resultados

Normalizar los datos de tamaño de los buzones permite generar informes coherentes y comparables entre tenants y entre ciclos de informes.

📌 Casos de uso:

  • Convierte los datos de tamaño de los buzones a unidades estandarizadas para analizar tendencias con precisión.
  • Te permite añadir metadatos para el seguimiento de auditorías y la integración en cuadros de mando.

📌 Requisitos previos:

  • Necesitarás los datos en CSV u objetos obtenidos en los pasos anteriores.
  • Hace falta acceso a un entorno de PowerShell para manipular y exportar archivos CSV/JSON.

Comando de PowerShell:

$report = Import-Csv .\MailboxSize_Joined.csv | ForEach-Object {
[pscustomobject]@{
DisplayName = $_.DisplayName
Mailbox = $_.Mailbox
MailboxType = $_.MailboxType
TotalItemSizeGB = [math]::Round(($_.TotalItemSize -replace '.*\((.*?)\sbytes\).*','$1')/1GB,2)
PercentQuotaUsed= $_.PercentQuotaUsed
AsOf = (Get-Date).ToString('yyyy-MM-dd')
TenantId = 'ContosoTenant'
ScriptVersion = 'v1.0'
}
}
$report | Export-Csv ".\MailboxSize_Normalized.csv" -NoTypeInformation
$report | ConvertTo-Json | Out-File ".\MailboxSize_Normalized.json"

Este script convierte el tamaño de los buzones a gigabytes, añade etiquetas de fecha, tenant y versión del script, y exporta los datos a CSV y JSON para informes o cuadros de mando.

Paso 5: automatizar con medidas de protección

La automatización garantiza que los informes de tamaño de buzones se ejecuten de forma coherente sin intervención del usuario, y reduce el riesgo de limitación (throttling) y de fallos transitorios en tenants grandes de Office 365.

📌 Casos de uso:

  • Permite generar informes de forma desatendida en varios tenants o entornos.
  • Ofrece una supervisión fiable del tamaño de los buzones de Exchange Online, con lógica de reintentos y seguimiento de deltas por versión.

📌 Requisitos previos:

  • Necesitarás la autenticación solo de aplicación configurada en Azure AD para sesiones no interactivas de Exchange Online.
  • Hace falta un repositorio seguro de scripts y un programador de tareas para gestionar las ejecuciones diarias o semanales.
Connect-ExchangeOnline -AppId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" `
-CertificateThumbprint "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" `
-Organization "contoso.onmicrosoft.com"
for ($i=0; $i -lt 3; $i++) {
try {
.\Get-MailboxSizeReport.ps1
break
} catch {
Start-Sleep -Seconds (30 * ($i + 1))
}
}
Compare-Object (Import-Csv .\MailboxSize_Previous.csv) (Import-Csv .\MailboxSize_Current.csv) |
Export-Csv .\MailboxSize_Delta.csv -NoTypeInformation

En este paso, PowerShell se conecta de forma segura, aplica lógica de reintentos para evitar la limitación y genera un archivo de comparación delta que permite seguir el crecimiento de los buzones y los cambios de cuota entre ciclos de informes.

Paso 6: consolidación multitenant para MSP

Las consolidaciones permiten a los MSP reunir los resultados de varios tenants en un único informe para comparar datos en las revisiones con los clientes.

📌 Casos de uso:

  • Genera un único cuadro de mando con los buzones más grandes, los excesos de cuota y el uso del archivo por tenant.
  • Simplifica la preparación de las QBR al consolidar las salidas de cada tenant en un solo conjunto de datos normalizado.

📌 Requisitos previos:

  • Necesitarás un archivo de configuración de tenants que defina los datos de autenticación de cada uno.
  • Hace falta que todos los pasos anteriores se hayan completado correctamente y que sus exportaciones estén guardadas en una ubicación central.

Qué hacer:

  • Recorre los tenants a partir de un archivo de configuración y autentícate en cada uno.
  • Escribe la salida de cada tenant en su propia carpeta, con una marca de fecha coherente.
  • Genera una consolidación que muestre los buzones más grandes, las tendencias de crecimiento, los excesos de cuota y la adopción del archivo en todos los tenants.

Paso 7: convertir los informes de buzones en resultados medibles

Transformar los datos de tamaño de los buzones en tareas de seguimiento es lo que garantiza que esos datos se traduzcan en resultados medibles.

📌 Casos de uso:

  • Abre tickets proactivos por excesos de cuota, crecimiento anómalo o buzones compartidos demasiado grandes.
  • Destaca tendencias y excepciones mensuales en las QBR para demostrar la madurez de la planificación de capacidad.

📌 Requisitos previos:

  • Necesitarás los informes de tamaño y cuota de buzones generados en los pasos anteriores.
  • Para completar este paso necesitarás acceso a tu software PSA o a tu service desk para abrir y seguir los tickets de corrección.

Qué hacer:

  • Crea tickets cuando los valores de PercentQuotaUsed sean altos, cuando un buzón crezca muy rápido o cuando un buzón compartido sea demasiado grande.
  • Adjunta muestras de buzones relevantes a las pruebas de restauración o retención para verificarlas.
  • Incluye gráficos de crecimiento, excesos de cuota y tendencias del archivo en los informes mensuales de las QBR para cerrar el ciclo.

⚠️ Aspectos a tener en cuenta

Riesgos

Posibles consecuencias

Cómo revertirlo

Falta el contexto de autenticación en las tareas programadasLa automatización falla sin avisar o genera informes incompletos.Usa autenticación solo de aplicación y comprueba la validez del token antes de programar la tarea
Exportaciones grandes sin normalizarLas comparaciones y las tendencias de los informes dejan de ser fiablesConvierte todos los tamaños de buzón a GB e incluye campos de metadatos coherentes
Ejecuciones de tenants incompletas u omitidasLa consolidación muestra totales incoherentes o tenants que faltanValida las carpetas y el número de registros de cada tenant antes de compilar los informes finales

Tabla resumen de buenas prácticas para obtener informes de tamaño de buzones con PowerShell

Práctica

Objetivo

Valor que aporta

Base de referencia del tamaño de los buzonesCapturar métricas fiables de los buzones con Get-MailboxStatisticsDatos de capacidad precisos para previsiones y auditorías
Incluir los datos de cuota y archivoCombinar los datos de uso con los umbrales de cuota y el estado del archivo para tener visibilidad completaMejor planificación de la capacidad y menos excesos de almacenamiento inesperados
Muestreo por carpetasAnalizar las estadísticas de carpetas de los buzones grandes y de rápido crecimientoDetección más rápida de la causa raíz y mejor gestión de la retención
Normalizar y etiquetar las salidasEstandarizar los datos de buzones entre tenants con unidades y metadatos coherentesComparaciones sencillas, análisis de tendencias fiable e integración en cuadros de mando
Automatizar los informes de forma seguraUsar autenticación solo de aplicación y scripts programados para las tareas recurrentesInformes multitenant escalables, seguros y coherentes

Tareas para agilizar los informes de tamaño de buzones y el seguimiento de cuotas

Automatizar y completar estas tareas hace que los informes de tamaño de buzones se mantengan coherentes, precisos y listos para auditorías o QBR.

  • Programa una tarea de PowerShell que exporte el tamaño de los buzones y el número de elementos con Get-MailboxStatistics.
  • Combina los datos de cuota de Get-EXOMailbox y calcula PercentQuotaUsed para seguir el uso y el crecimiento.
  • Marca automáticamente en cada ejecución los excesos de cuota y las anomalías de crecimiento elevado.
  • Opcionalmente, toma una muestra de las estadísticas de carpetas de los 50 buzones principales para identificar las carpetas que más almacenamiento consumen.
  • Exporta un CSV, un JSON y un registro resumen con el número de registros, el tiempo de ejecución y los filtros aplicados.
  • Ejecuta una tarea de comparación mensual para crear informes delta y un resumen de una página para la documentación.

Cómo escalar los informes de tamaño de buzones en las operaciones de un MSP

Los informes de tamaño de buzones se convierten en un proceso estratégico cuando los cmdlets de PowerShell de Exchange Online se combinan con el contexto de cuota y archivo, un muestreo por carpetas selectivo y la automatización. Las salidas normalizadas y los deltas mensuales ofrecen una visión clara de las tendencias de capacidad y del uso del almacenamiento en todos los tenants.

Con Get-MailboxStatistics y unos informes de tamaño de buzones bien estructurados en PowerShell, los MSP pueden convertir datos en bruto en información útil para la planificación, en evidencias de incidentes y en resúmenes listos para las QBR. Este enfoque aporta coherencia operativa, reduce las sorpresas y permite tomar decisiones informadas sobre capacidad y retención en todos los entornos de clientes.

Temas relacionados:

FAQs

En Exchange Online, los informes incluyen todos los datos del buzón y del archivo, incluidos los elementos recuperables y el contenido retenido, aunque no se vean en la vista habitual.

Conviene usar autenticación solo de aplicación con lógica de reintentos y un almacenamiento seguro de credenciales. Programa tareas recurrentes y genera comparaciones delta para seguir los cambios entre ejecuciones.

Solo cuando investigues buzones inusualmente grandes o problemas de retención. Muestrear todos los buzones alarga el tiempo de ejecución sin aportar más visibilidad.

Como mínimo: nombre del buzón, tipo, tamaño en GB, porcentaje de cuota utilizada, estado del archivo y marca de tiempo. Usar unidades coherentes hace fiables las comparaciones de un mes a otro.

Las tendencias de tamaño, los excesos de cuota y las métricas de adopción del archivo demuestran una gestión proactiva de la capacidad y sirven como evidencia de SLA y de cumplimiento.

Quizá también te interese…

¿Listo para simplificar los aspectos más complejos de las TI?