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:
- Conéctate a Exchange Online PowerShell.
- Ejecuta Get-MailboxStatistics y selecciona solo los campos necesarios, como TotalItemSize, ItemCount, LastLogonTime y Database.
- Exporta los resultados a formato CSV o JSON como punto de partida.
- Incluye una columna con el tipo de buzón para separar los de usuario, los compartidos y los de recursos.
- 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 -Forceforeach ($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 = $_.DisplayNameMailbox = $_.MailboxMailboxType = $_.MailboxTypeTotalItemSizeGB = [math]::Round(($_.TotalItemSize -replace '.*\((.*?)\sbytes\).*','$1')/1GB,2)PercentQuotaUsed= $_.PercentQuotaUsedAsOf = (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.ps1break} 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 programadas | La 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 normalizar | Las comparaciones y las tendencias de los informes dejan de ser fiables | Convierte todos los tamaños de buzón a GB e incluye campos de metadatos coherentes |
| Ejecuciones de tenants incompletas u omitidas | La consolidación muestra totales incoherentes o tenants que faltan | Valida 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 buzones | Capturar métricas fiables de los buzones con Get-MailboxStatistics | Datos de capacidad precisos para previsiones y auditorías |
| Incluir los datos de cuota y archivo | Combinar los datos de uso con los umbrales de cuota y el estado del archivo para tener visibilidad completa | Mejor planificación de la capacidad y menos excesos de almacenamiento inesperados |
| Muestreo por carpetas | Analizar las estadísticas de carpetas de los buzones grandes y de rápido crecimiento | Detección más rápida de la causa raíz y mejor gestión de la retención |
| Normalizar y etiquetar las salidas | Estandarizar los datos de buzones entre tenants con unidades y metadatos coherentes | Comparaciones sencillas, análisis de tendencias fiable e integración en cuadros de mando |
| Automatizar los informes de forma segura | Usar autenticación solo de aplicación y scripts programados para las tareas recurrentes | Informes 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:
- Cómo hacer una copia de seguridad de Microsoft 365 Exchange Online
- Cómo proteger los buzones compartidos con grupos de seguridad en Microsoft 365
- Estrategias de archivador de correos: guía completa para administradores de TI y MSP
- Cómo migrar buzones de Exchange Online sin tiempo de inactividad
- Cómo usar la API de Microsoft Graph para obtener informes de cumplimiento en varios tenants
