Genere informes de uso de buzones con Microsoft Graph PowerShell
Los informes de uso en Microsoft 365, como los informes de uso de OneDrive, SharePoint y Mailbox, son una forma conveniente de obtener una descripción general rápida de la utilización del almacenamiento en su inquilino. Un problema que surgió en las preguntas y respuestas de Microsoft fue que estos informes no se pueden configurar para que se le envíen automáticamente por correo electrónico en un período determinado, específicamente el informe de uso del buzón de Exchange Online.
La solución a este problema es generar primero los mismos informes utilizando Microsoft Graph PowerShell. Una vez que se genera el informe, tiene la flexibilidad de enviarlo por correo electrónico o colocarlo en un archivo compartido para leerlo más tarde.
En este blog, le mostraré cómo usar Microsoft Graph PowerShell para generar informes de uso del buzón de Exchange Online desde Microsoft 365.
Requisitos
- Debe tener instalados los últimos módulos de Microsoft Graph PowerShell. Consulte Cómo instalar los módulos de Microsoft Graph PowerShell.
- Debe aceptar los siguientes permisos: Reports.Read.All. Esto requerirá una cuenta de Administrador Global.
Informe de uso de Exchange Online
A continuación se muestra un breve script que generará un informe de uso de buzones de correo para todos los buzones de Exchange en línea de su organización. Específicamente, este informe resaltará la cantidad total de almacenamiento utilizado para cada buzón en bytes y luego convertirá esa cifra a megabytes para facilitar la lectura. Esto es útil en escenarios de migración o durante evaluaciones de licencias. Aunque el período no es relevante en este informe, para agregar confusión, aún debe definir el período de uso incluso cuando no afecte el resultado.
Para cada uno de los scripts siguientes, modifique la variable $path para que coincida con la ubicación a la que desea exportar los resultados.
Informe de uso del buzón
Connect-MgGraph -scopes Reports.Read.All
$path = "C:\temp\MailboxReport.csv"
Get-MgReportMailboxUsageDetail -Period D7 -OutFile $path
$report = import-csv $path
$report.Foreach({
$_."storage used (Byte)" = '{0:N2} MB' -f ($_."storage used (Byte)" / 1MB)
})
$report | Export-CSV -Path $path -NoTypeInformationTodos los cmdlets de informes de uso de Microsoft Graph PowerShell
Hay muchos otros informes de Microsoft relacionados que puede generar usando PowerShell, algunos que realizan utilidades durante el período de uso y otros que aún no lo hacen. A continuación se muestra una lista de todos los cmdlets de informes de uso disponibles divididos en secciones.
Imprimir
Get-MgReportDailyPrintUsageByPrinter
Get-MgReportDailyPrintUsageByPrinterCount
Get-MgReportDailyPrintUsageByUser
Get-MgReportDailyPrintUsageByUserCount
Get-MgReportMonthlyPrintUsageByPrinter
Get-MgReportMonthlyPrintUsageByPrinter contar
Get-MgReportMonthlyPrintUsageByUser
Get-MgReportMonthlyPrintUsageByUserCount
Correo
Get-MgReportEmailAppUsageAppUserCount
Get-MgReportEmailAppUsageUserCount
Get-MgReportEmailAppUsageUserDetail
Get-MgReportEmailAppUsageVersionUserCount
Get-MgReportMailboxUsageDetail
Get-MgReportMailboxUsageMailboxCount
Get-MgReportMailboxUsageQuotaStatusMailboxCount
Get-MgReportMailboxUsageStorage
OneDrive
Get-MgReportOneDriveUsageAccountCount
Get-MgReportOneDriveUsageAccountDetail
Get-MgReportOneDriveUsageFileCount
Get-MgReportOneDriveUsageStorage
SharePoint
Get-MgReportSharePointSiteUsageDetail
Get-MgReportSharePointSiteUsageFileCount
Get-MgReportSharePointSiteUsagePage
Get-MgReportSharePointSiteUsageSiteCount
Get-MgReportSharePointSiteUsageStorage
Dispositivo de Teams
Get-MgReportSkypeForBusinessDeviceUsageDistributionUserCount
Get-MgReportSkypeForBusinessDeviceUsageUserCount
Get-MgReportSkypeForBusinessDeviceUsageUserDetail
Get-MgReportTeamDeviceUsageDistributionUserCount
Get-MgReportTeamDeviceUsageUserCount
Consigue- MgReportTeamDeviceUsageUserDetail
Yammer
Get-MgReportYammerDeviceUsageDistributionUserCount
Get-MgReportYammerDeviceUsageUserCount
Períodos de informe
Los períodos de informes admitidos para Microsoft Graph PowerShell coinciden con los admitidos a través del centro de administración de Microsoft 365. A continuación se muestran los períodos de uso admitidos en días:
- D7
- D30
- D90
- D180
Automatizar los informes por correo electrónico
Cada informe se puede automatizar para enviarlo por correo electrónico al buzón, grupo o buzón compartido de un usuario. Para lograr esto, los correos electrónicos se pueden enviar usando Microsoft Graph y automatizarse usando Microsoft Graph PowerShell. Aquí hay un ejemplo del código que uso para enviar correo usando Microsoft Graph PowerShell:
(Este cmdlet Send-MgUserMail se encuentra dentro del módulo Microsoft.Graph.Users.Actions y requiere el consentimiento del permiso mail.send ).
$Attachment = %filepath%
$MailAttachement = [Convert]::ToBase64String([IO.File]::ReadAllBytes($Attachment))
$body = @{
message = @{
subject = "Org Mailbox Report"
body = @{
contentType = "Text"
content = "Please see the attached"
}
toRecipients = @(
@{
emailAddress = @{
address = "%TO ADDRESS%"
}
}
)
attachments = @(
@{
"@odata.type" = "#microsoft.graph.fileAttachment"
name = "$Attachment"
contentType = "text/plain"
contentBytes = $MailAttachement
}
)
}
saveToSentItems = "false"
}
Send-MgUserMail -UserId $from -BodyParameter $body
Este proceso se puede automatizar mediante Azure Automation para garantizar que se ejecute de forma segura y no desde un servidor físico o virtual. He cubierto este proceso en detalle en mi blog Cómo ejecutar scripts de Microsoft Graph PowerShell con Azure Automation.