Archive

Update: Exchange 2007 / 2010 – tägliche Messagingstatistik

Das hier veröffentliche Script zur Erstellung und dem Versand einer täglichen Messagingstatistik habe ich nochmals erweitert. In dieser Version werden zusätzlich folgende Informationen ausgegeben:

  • Volumen der größten versendeten E-Mail
  • durchschnittliche E-Mail-Größe (Out)
  • Volumen der größten empfangenen E-Mail
  • durchschnittliche E-Mail-Größe (In)
$hubs = Get-TransportServer
 
# Get the start date for the tracking log search
$Start = (Get-Date -Hour 00 -Minute 00 -Second 00).AddDays(-1)
 
# Get the end date for the tracking log search
$End = (Get-Date -Hour 23 -Minute 59 -Second 59).AddDays(-1)
 
$Datum = $Start.ToShortDateString()
 
$receive = $hubs | get-messagetrackinglog -Start $Start -End $End -EventID "RECEIVE" -ResultSize Unlimited | select Sender,RecipientCount,TotalBytes,Recipients
$send = $hubs | get-messagetrackinglog -Start $Start -End $End -EventID "SEND" -ResultSize Unlimited | select Sender,RecipientCount,TotalBytes
$mreceive = $receive | Measure-Object TotalBytes -maximum -minimum -average -sum
$msend = $send | Measure-Object TotalBytes -maximum -minimum -average -sum
 
$anzahl = $mreceive.count + $msend.count
$volumen = ($mreceive.sum + $msend.sum) / (1024 * 1024)
 
$volumen = "{0:N2}" -f $volumen + " MB"
 
$msendmb = $msend.sum / (1024 * 1024)
$vsend = "{0:N2}" -f $msendmb + " MB"
$bigsend = $msend.maximum / (1024 * 1024)
$avsend = $msend.average / 1024
 
$bigsendmb = "{0:N2}" -f $bigsend + " MB"
$avsendkb = "{0:N2}" -f $avsend + " KB"
 
$mreceivemb = $mreceive.sum / (1024 * 1024)
$vreceive = "{0:N2}" -f $mreceivemb + " MB"
$bigreceive = $mreceive.maximum / (1024 * 1024)
$avreceive = $mreceive.average / 1024
 
$bigreceivemb = "{0:N2}" -f $bigreceive + " MB"
$avreceivekb = "{0:N2}" -f $avreceive + " KB"
 
#$senders = $send | Group-Object Sender | Sort-Object Count -Descending
#$topsender = $senders[0].Name
#$topsender += $senders[0].Count
 
#$receivers = $receive | Group-Object Recipients | Sort-Object Count -Descending
#$topreceiver = $receivers[0]
#$topreceiver
 
$obj = new-object psObject
 
$obj |Add-Member -MemberType noteproperty -Name "Datum" -Value $Datum
$obj |Add-Member -MemberType noteproperty -Name "Anzahl Gesendete E-Mails" -Value $msend.Count
$obj |Add-Member -MemberType noteproperty -Name "Volumen Gesendete E-Mails" -Value $vsend
$obj |Add-Member -MemberType noteproperty -Name "Volumen der größten E-Mail Out" -value $bigsendmb
$obj |Add-Member -MemberType noteproperty -Name "Durchschnittliche Größe Out" -value $avsendkb
$obj |Add-Member -MemberType noteproperty -Name "Anzahl Empfangene E-Mails" -Value $mreceive.Count
$obj |Add-Member -MemberType noteproperty -Name "Volumen Empfangene E-Mails" -Value $vreceive
$obj |Add-Member -MemberType noteproperty -Name "Volumen der größten E-Mail In" -value $bigreceivemb
$obj |Add-Member -MemberType noteproperty -Name "Durchschnittliche Größe In" -value $avreceivekb
$obj |Add-Member -MemberType noteproperty -Name "Gesamtanzahl" -Value $anzahl
$obj |Add-Member -MemberType noteproperty -Name "Volumen Gesamt" -Value $volumen
 
$out = $Datum + ";" + $msend.count + ";" + $vsend + ";" + $mreceive.count + ";" + $vreceive + ";" + $anzahl + ";" + $volumen
$out | out-file c:\daily.csv -append -encoding default
 
function sendmail($body)
{
$SmtpClient = new-object system.net.mail.smtpClient
$MailMessage = New-Object system.net.mail.mailmessage
$SmtpClient.Host = "mailserver.domain.local"
$mailmessage.from = "sender@domain.tld"
$mailmessage.To.add("recipient@domain.tld")
$mailmessage.CC.add("recipient@domain.tld")
$mailmessage.Subject = “Exchange daily report for $Datum$MailMessage.IsBodyHtml = $false
$mailmessage.Body = $body
 
$smtpclient.Send($mailmessage)
}
 
$obj = $obj -replace("@{","")
$obj = $obj -replace("=",":`t")
$obj = $obj -replace("; ","`n")
$obj = $obj -replace("}","`n")
 
sendmail $obj
Share

3 comments to Update: Exchange 2007 / 2010 – tägliche Messagingstatistik

  • Sven

    Hallo,

    gibt es eine Möglichkeit herauszufinden, wieviele Mails an bestimmte Verteiler geschickt werden?
    Hintergrund: Wir haben unendlich viele Verteiler, von denen viele vermutlich nicht genutzt werden.

    mfg
    Sven

  • Marc

    Hallo

    tolles Skript aber die Statistik kann nicht richtig sein.
    wir haben zum Beispiel 1600 Postfächer und dieses Skript sagt das nur 2800 Emails gesendet wurden.

    SPAM Filter Ironport meldet ja bereits das mehr als 3300 Mails nur nach extern gingen.
    Bei 1600 Postfächer müsste ja jeder User jeden Tag nur 2 Mails schreiben dann wäre die Statistik von 2800 EMails bereits überschritten.
    Habe dann mal mein Mail verhalten beobachtet das ich im Schnitt 60 Mails sende und 70 Mails erhalte wenn ich dies als durchschnitt für alle User nehme
    komme ich bereits auf über 100.000 Mails am Tag was dieses Skript nicht bestätigt.

    Bin also auf der Suche wo der Denkfehler ist!

    VG

    Marc

  • [New Post] Update: Exchange 2007 / 2010 – tägliche Messagingstatistik – via @twitoaster http://www.roland-ehle.de/archives/1001

Leave a Reply

  

  

  

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Comment Spam Protection by WP-SpamFree