Es gab die Anforderung herauszufinden wie viele E-Mail in einer bestimmten Zeitspanne verschickt INTERN verschickt werden. Dafür habe ich folgendes Skript geschrieben:
# Wie viele Tage in der Vergangenheit soll begonnen werden zu zählen?
$VorTagen = 5
# Von da ab, wie viele Tage sollen berücksichtigt werden?
$AnzahlTage = 5
# In diesem Beispiel werden alle Mails der letzten 5 Tage genommen.
# Man kann auch vor 15 Tagen beginnen und von dort ab 7 Tage zählen, etc....
$Tabelle = @()
for ($i = 0; $i -lt $AnzahlTage; $i++){
$Nachrichten = @()
$IDs = @()
$StartDatum = ((Get-Date).AddDays(-$VorTagen+$i))
$EndDatum = ((Get-Date).AddDays(-$VorTagen+$i+1))
# @domain.de muss hier noch angepasst werden
$logs = Get-MessageTrackingLog -Start $StartDatum -End $EndDatum -ResultSize Unlimited | ? {$_.EventID -like "Receive" -and $_.Sender -like "*@domain.de" -and $_.Recipients -like "*@domain.de*"}
$logs | % {
if(!($IDs -like $_.InternalMessageID)){
$Nachrichten += $_; $IDs += $_.InternalMessageID
}
}
$Reihe = New-Object System.Object
$Reihe | Add-Member -type NoteProperty -name StartDatum -value $StartDatum
$Reihe | Add-Member -type NoteProperty -name EndDatum -value $EndDatum
$Reihe | Add-Member -type NoteProperty -name AnzahlNachrichten -value $Nachrichten.Count
$Tabelle += $Reihe
}
# Es wird eine Tabelle ausgegeben. Diese kann dann wiederum weiter verarbeitet werden.
$Tabelle