Exchange et Powershell : volumétrie des mails

Ce script à exécuter dans l’Exchange Management Shell qui prend pour paramètre un nombre de jours calcule grâce au tracking logs le nombre de mails qui ont été envoyés hors du domaine spécifié et reçus par un expéditeur hors du domaine, afin de pouvoir calculer une taille totale et une moyenne.

param([Parameter(Mandatory=$true)][int] $Days)
$today = (Get-Date)
$TrxS = Get-MessageTrackingLog -EventID "SEND" -Start $today.AddDays(-$Days) -End $today -ResultSize 5000
$TrxD = Get-MessageTrackingLog -EventID "DELIVER" -Start $today.AddDays(-$Days) -End $today -ResultSize 5000
$FltS = $TrxS | Where-Object { $_.Recipients -notmatch "@dundermifflin.inc"}
$FltD = $TrxD | Where-Object { $_.Sender -notmatch "@dundermifflin.inc" }
$FltS | foreach { $SendSize += $_.TotalBytes }
$FltD | foreach { $DelSize += $_.TotalBytes }
Write-Host "Total messages sent:"$FltS.Count
Write-Host "Total sent bytes:"$SendSize" ("([math]::Round($SendSize/1024/1024,1))"MB )"
Write-Host "Average sent message size (KB):"([math]::Round(($SendSize/$FltS.Count)/1024,1))`r`n
Write-Host "Total messages received:"$FltD.Count
Write-Host "Total received bytes:"$DelSize" ("([math]::Round($DelSize/1024/1024,1))"MB )"
Write-Host "Average received message size (KB):"([math]::Round(($DelSize/$FltD.Count)/1024,1))