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, 1984 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 ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Exchange Server
gelöst Exchange 2010 Activesync Problem bei IOS 10.1.1 und Wildcard SSL Zertifikat (2)

Frage von hasel123 zum Thema Exchange Server ...

Heiß diskutierte Inhalte
Router & Routing
gelöst Ipv4 mieten (22)

Frage von homermg zum Thema Router & Routing ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...