Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Auswertung E-Mailverkehr von Gruppen Postfächern im Exchange 2010

Frage Microsoft Exchange Server

Mitglied: Kempchen

Kempchen (Level 1) - Jetzt verbinden

13.08.2014 um 16:32 Uhr, 2025 Aufrufe, 4 Kommentare

Hallo Zusammen,


wir haben bei uns eine Reservierungsabteilung welche mit Gruppenpostfächern arbeitet.
Nun habe ich die Aufgabenstellung erhalten, dass man den E-Mailverkehr (Anzahl ein- / ausgehend) auswerten möchte und in einem Diagramm am besten bereitstellen möchte erhalten.

Ich kenne zwar ein Tool (MailDetectiv falls es wer kennen sollte) nur kommt dies in diesem Fall nicht in Frage.... jetzt suche ich nach einer Alternative zu diesem tool.

Vielleicht kennt ja wer von euch eine gute Alternative darf auch was kosten.

Besten Dank für eure Hilfe.

Kempchen
Mitglied: colinardo
13.08.2014, aktualisiert um 19:05 Uhr
Hallo Kempchen,
gibt's auch umesöns mit Powershellauswertung und Excel:
http://blogs.technet.com/b/neiljohn/archive/2011/08/09/user-profile-ana ...

Grüße Uwe
Bitte warten ..
Mitglied: Kempchen
14.08.2014 um 16:54 Uhr
Hallo Uwe,

danke für deine rasche Hilfestellung.

Leider kann ich mit dem Script aktuell nix anfangen, weil dieser das Falsche Datumformat verwendet und ich nicht tief genug in der PS-Programmierung drinnen bin um diese so abzuändern, dass der diese ins Deutsche Zeitformat ändert.

@all sollte sonst jemand eine Idee haben würde ich mich sehr über Unterstützung freuen.

VG
Kempchen
Bitte warten ..
Mitglied: colinardo
14.08.2014, aktualisiert um 20:33 Uhr
Ja, das habe ich damals auch feststellen müssen, das es nicht mehr ganz aktuell ist.
Habe dir das Script von der obigen Seite ein wenig angepasst:
Du rufst das Script dann mit folgenden zwei Parametern auf, die selbsterklärend sein sollten (Start- und Enddatum für das Erfassen des gewünschten Zeitraumes). Die CSV-Dateien landen dann im aktuellen Verzeichnis.
.\GetEMailStats.ps1 -startdate "01.01.2014" -enddate "14.08.2014"
GetEMailStats.ps1 (wurde etwas angepasst / das Ursprungsscript stammt von dieser Seite)
01.
param( 
02.
    [parameter(mandatory=$true)][string]$start, 
03.
    [parameter(mandatory=$true)][string]$ende 
04.
05.
$today = get-date  
06.
$rundate = $today 
07.
$startdate = get-date $start 
08.
$enddate = (get-date $ende).AddDays(1).AddSeconds(-1) 
09.
 
10.
$outfile_date = $rundate.toString("yyyy_MM_dd") 
11.
$outfile = "email_stats_" + $outfile_date + ".csv"  
12.
  
13.
$dl_stat_file = "DL_stats.csv"  
14.
  
15.
$accepted_domains = Get-AcceptedDomain |% {$_.domainname.domain}  
16.
[regex]$dom_rgx = "`(?i)(?:" + (($accepted_domains |% {"@" + [regex]::escape($_)}) -join "|") + ")$"  
17.
  
18.
$mbx_servers = Get-ExchangeServer |? {$_.serverrole -match "Mailbox"}|% {$_.fqdn}  
19.
[regex]$mbx_rgx = "`(?i)(?:" + (($mbx_servers |% {"@" + [regex]::escape($_)}) -join "|") + ")\>$"  
20.
  
21.
$msgid_rgx = "^\<.+@.+\..+\>$"  
22.
  
23.
$hts = get-exchangeserver |? {$_.serverrole -match "hubtransport"} |% {$_.name}  
24.
  
25.
$exch_addrs = @{}  
26.
  
27.
$msgrec = @{}  
28.
$bytesrec = @{}  
29.
  
30.
$msgrec_exch = @{}  
31.
$bytesrec_exch = @{}  
32.
  
33.
$msgrec_smtpext = @{}  
34.
$bytesrec_smtpext = @{}  
35.
  
36.
$total_msgsent = @{}  
37.
$total_bytessent = @{}  
38.
$unique_msgsent = @{}  
39.
$unique_bytessent = @{}  
40.
  
41.
$total_msgsent_exch = @{}  
42.
$total_bytessent_exch = @{}  
43.
$unique_msgsent_exch = @{}  
44.
$unique_bytessent_exch = @{}  
45.
  
46.
$total_msgsent_smtpext = @{}  
47.
$total_bytessent_smtpext = @{}  
48.
$unique_msgsent_smtpext=@{}  
49.
$unique_bytessent_smtpext = @{}  
50.
  
51.
$dl = @{}  
52.
  
53.
  
54.
$obj_table = {  
55.
@"  
56.
StartDate = $(get-date $startdate -Format "dd.MM.yyyy HH:mm:ss") 
57.
EndDate = $(get-date $enddate -Format "dd.MM.yyyy HH:mm:ss") 
58.
User = $($address.split("@")[0])  
59.
Domain = $($address.split("@")[1])  
60.
Sent Total = $(0 + $total_msgsent[$address])  
61.
Sent MB Total = $("{0:F2}" -f $($total_bytessent[$address]/1mb))  
62.
Received Total = $(0 + $msgrec[$address])  
63.
Received MB Total = $("{0:F2}" -f $($bytesrec[$address]/1mb))  
64.
Sent Internal = $(0 + $total_msgsent_exch[$address])  
65.
Sent Internal MB = $("{0:F2}" -f $($total_bytessent_exch[$address]/1mb))  
66.
Sent External = $(0 + $total_msgsent_smtpext[$address])  
67.
Sent External MB = $("{0:F2}" -f $($total_bytessent_smtpext[$address]/1mb))  
68.
Received Internal = $(0 + $msgrec_exch[$address])  
69.
Received Internal MB = $("{0:F2}" -f $($bytesrec_exch[$address]/1mb))  
70.
Received External = $(0 + $msgrec_smtpext[$address])  
71.
Received External MB = $("{0:F2}" -f $($bytesrec_smtpext[$address]/1mb))  
72.
Sent Unique Total = $(0 + $unique_msgsent[$address])  
73.
Sent Unique MB Total = $("{0:F2}" -f $($unique_bytessent[$address]/1mb))  
74.
Sent Internal Unique  = $(0 + $unique_msgsent_exch[$address])   
75.
Sent Internal Unique MB = $("{0:F2}" -f $($unique_bytessent_exch[$address]/1mb))  
76.
Sent External  Unique = $(0 + $unique_msgsent_smtpext[$address])  
77.
Sent External Unique MB = $("{0:F2}" -f $($unique_bytessent_smtpext[$address]/1mb))  
78.
"@  
79.
}  
80.
  
81.
$props = $obj_table.ToString().Split("`n")|% {if ($_ -match "(.+)="){$matches[1].trim()}}  
82.
  
83.
$stat_recs = @()  
84.
  
85.
function time_pipeline {  
86.
param ($increment  = 1000)  
87.
begin{$i=0;$timer = [diagnostics.stopwatch]::startnew()}  
88.
process {  
89.
    $i++  
90.
    if (!($i % $increment)){Write-host “`rProcessed $i in $($timer.elapsed.totalseconds) seconds” -nonewline}  
91.
    $_  
92.
    }  
93.
end {  
94.
    write-host “`rProcessed $i log records in $($timer.elapsed.totalseconds) seconds”  
95.
    Write-Host "   Average rate: $([int]($i/$timer.elapsed.totalseconds)) log recs/sec."  
96.
    }  
97.
}  
98.
  
99.
foreach ($ht in $hts){  
100.
  
101.
    Write-Host "`nStarted processing $ht"  
102.
  
103.
    get-messagetrackinglog -Server $ht -Start $startdate -End $enddate -resultsize unlimited |  
104.
    time_pipeline |%{  
105.
      
106.
      
107.
    if ($_.eventid -eq "DELIVER" -and $_.source -eq "STOREDRIVER"){  
108.
      
109.
        if ($_.messageid -match $mbx_rgx -and $_.sender -match $dom_rgx) {  
110.
              
111.
            $total_msgsent[$_.sender] += $_.recipientcount  
112.
            $total_bytessent[$_.sender] += ($_.recipientcount * $_.totalbytes)  
113.
            $total_msgsent_exch[$_.sender] += $_.recipientcount  
114.
            $total_bytessent_exch[$_.sender] += ($_.totalbytes * $_.recipientcount)  
115.
          
116.
            foreach ($rcpt in $_.recipients){  
117.
            $exch_addrs[$rcpt] ++  
118.
            $msgrec[$rcpt] ++  
119.
            $bytesrec[$rcpt] += $_.totalbytes  
120.
            $msgrec_exch[$rcpt] ++  
121.
            $bytesrec_exch[$rcpt] += $_.totalbytes  
122.
            }  
123.
              
124.
        }  
125.
          
126.
        else {  
127.
            if ($_messageid -match $messageid_rgx){  
128.
                    foreach ($rcpt in $_.recipients){  
129.
                        $msgrec[$rcpt] ++  
130.
                        $bytesrec[$rcpt] += $_.totalbytes  
131.
                        $msgrec_smtpext[$rcpt] ++  
132.
                        $bytesrec_smtpext[$rcpt] += $_.totalbytes  
133.
                    }  
134.
                }  
135.
          
136.
            }  
137.
                  
138.
    }  
139.
      
140.
      
141.
    if ($_.eventid -eq "RECEIVE" -and $_.source -eq "STOREDRIVER"){  
142.
        $exch_addrs[$_.sender] ++  
143.
        $unique_msgsent[$_.sender] ++  
144.
        $unique_bytessent[$_.sender] += $_.totalbytes  
145.
          
146.
            if ($_.recipients -match $dom_rgx){  
147.
                $unique_msgsent_exch[$_.sender] ++  
148.
                $unique_bytessent_exch[$_.sender] += $_.totalbytes  
149.
                }  
150.
  
151.
            if ($_.recipients -notmatch $dom_rgx){  
152.
                $ext_count = ($_.recipients -notmatch $dom_rgx).count  
153.
                $unique_msgsent_smtpext[$_.sender] ++  
154.
                $unique_bytessent_smtpext[$_.sender] += $_.totalbytes  
155.
                $total_msgsent[$_.sender] += $ext_count  
156.
                $total_bytessent[$_.sender] += ($ext_count * $_.totalbytes)  
157.
                $total_msgsent_smtpext[$_.sender] += $ext_count  
158.
                 $total_bytessent_smtpext[$_.sender] += ($ext_count * $_.totalbytes)  
159.
                }  
160.
                                 
161.
              
162.
        }  
163.
          
164.
    if ($_.eventid -eq "expand"){  
165.
        $dl[$_.relatedrecipientaddress] ++  
166.
        }  
167.
    }       
168.
      
169.
}  
170.
  
171.
foreach ($address in $exch_addrs.keys){  
172.
  
173.
$stat_rec = (new-object psobject -property (ConvertFrom-StringData (&$obj_table)))  
174.
$stat_recs += $stat_rec | select $props  
175.
}  
176.
  
177.
$stat_recs | export-csv $outfile -notype -Delimiter ";" 
178.
  
179.
if (Test-Path $dl_stat_file){  
180.
    $DL_stats = Import-Csv $dl_stat_file  
181.
    $dl_list = $dl_stats |% {$_.address}  
182.
    }  
183.
      
184.
else {  
185.
    $dl_list = @()  
186.
    $DL_stats = @()  
187.
    }  
188.
  
189.
  
190.
$DL_stats |% {  
191.
    if ($dl[$_.address]){  
192.
        if ([datetime]$_.lastused -le [datetime]$rundate){   
193.
            $_.used = [int]$_.used + [int]$dl[$_.address]  
194.
            $_.lastused = $rundate  
195.
            }  
196.
        }  
197.
}  
198.
      
199.
$dl.keys |% {  
200.
    if ($dl_list -notcontains $_){  
201.
        $new_rec = "" | select Address,Used,Since,LastUsed  
202.
        $new_rec.address = $_  
203.
        $new_rec.used = $dl[$_]  
204.
        $new_rec.Since = $rundate  
205.
        $new_rec.lastused = $rundate  
206.
        $dl_stats += @($new_rec)  
207.
    }  
208.
}  
209.
  
210.
$dl_stats | Export-Csv $dl_stat_file -NoTypeInformation -force -Delimiter ";" 
211.
  
212.
  
213.
Write-Host "`nRun time was $(((get-date) - $today).totalseconds) seconds."  
214.
Write-Host "Email stats file is $outfile"  
215.
Write-Host "DL usage stats file is $dl_stat_file" 
Grüße Uwe
Bitte warten ..
Mitglied: goserver
18.08.2014 um 09:40 Uhr
Probiere es mal mit Jamsoftware: Smarttoolbox für Exchange.
Da kann man den E-Mail Verkehr in eine Datenbank reinschreiben (SQL Server) o.a.
Außerdem Spamfilter usw.

Kannst das Teil 30 Tage testen, bei Bedarf kann ich dir das günstiger besorgen.
Viel Spaß
Bitte warten ..
Ähnliche Inhalte
Exchange Server
gelöst IOS 10 - IPad - Exchange 2010 - Zertifikatsfehler (2)

Frage von adm1357 zum Thema Exchange Server ...

Outlook & Mail
gelöst Outlook 2013 vs. Exchange 2010 - Erinnerung bei Serienterminen löschen (3)

Frage von FA-jka zum Thema Outlook & Mail ...

Exchange Server
gelöst RU 17 Exchange 2010 . Erfahrungen? (12)

Frage von keine-ahnung zum Thema Exchange Server ...

Neue Wissensbeiträge
Rechtliche Fragen

Heiseshow, live ab 12 Uhr: Steht die Vorratsdatenspeicherung vor dem Aus?

Tipp von sabines zum Thema Rechtliche Fragen ...

Outlook & Mail

Outlook Probleme nach Juni Updates - KB3203467 ist Schuld

(1)

Information von Deepsys zum Thema Outlook & Mail ...

Microsoft Office

Windows 7, Office 2016 RTM und Updates ohne WSUS

Tipp von chgorges zum Thema Microsoft Office ...

E-Mail

Thunderbird 52 hat Druckprobleme

(3)

Tipp von magicteddy zum Thema E-Mail ...

Heiß diskutierte Inhalte
Server-Hardware
Einem Stromausfall entgegen wirken (28)

Frage von OIOOIOOIOIIOOOIIOIIOIOOO zum Thema Server-Hardware ...

Humor (lol)
Aktuell keine IT Probleme (22)

Frage von lordofremixes zum Thema Humor (lol) ...

Festplatten, SSD, Raid
PC stellt nach dem Bios ab (20)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...