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 |
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
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