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, 2037 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 Exchange 2010: Größenbeschränkung für ein Postfach (13)

Frage von honeybee zum Thema Exchange Server ...

Exchange Server
Exchange 2016 routet E-Mails in falsches Postfach (13)

Frage von MasterPhil zum Thema Exchange Server ...

Exchange Server
gelöst Exchange 2007 und 2010 Koexistenz - Transportprobleme (3)

Frage von john-doe zum Thema Exchange Server ...

Exchange Server
Exchange 2010 Problem (6)

Frage von Peacer zum Thema Exchange Server ...

Neue Wissensbeiträge
Windows Tools

Zeit für Energiesparmodus, Bildschirmabschaltung etc. schnell anpassen

Anleitung von hannsgmaulwurf zum Thema Windows Tools ...

Linux Netzwerk

Ping und das einstellbare Bytepattern

(1)

Erfahrungsbericht von LordGurke zum Thema Linux Netzwerk ...

Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

(4)

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Heiß diskutierte Inhalte