Analyse der SMTP Traffic Log Dateien per Powershell
Hallo,
habe mir eine kleine Powershell Funktion geschrieben mit der ich die Exchange SMTP Logdateien Filtern kann.
Ist nichts besonderes und es gibt bestimmt auch andere Wege, aber ich wollte es einfach mal teilen um zu schauen, ob noch jemand was dazu beitragen kann / möchte.
Nach Eingabe einer Email Adresse werden die letzten 3 Logdateien nach Einträgen durchsucht, die diese Adresse betreffen.
Die Ausgabe wird in die Zwischenablage kopiert und kann dann z.b. in Notepad++ importiert werden.
habe mir eine kleine Powershell Funktion geschrieben mit der ich die Exchange SMTP Logdateien Filtern kann.
Ist nichts besonderes und es gibt bestimmt auch andere Wege, aber ich wollte es einfach mal teilen um zu schauen, ob noch jemand was dazu beitragen kann / möchte.
Nach Eingabe einer Email Adresse werden die letzten 3 Logdateien nach Einträgen durchsucht, die diese Adresse betreffen.
Die Ausgabe wird in die Zwischenablage kopiert und kann dann z.b. in Notepad++ importiert werden.
function Exchangelog ()
{
$EmailAddr = Read-host "Nach welcher Email Adresse soll gesucht werden?"
$Exchfiles=gci "C:\Program Files\Microsoft\Exchange Server\V14\TransportRoles\Logs\ProtocolLog\SmtpSend" | sort creationtime | select -last 3
$exlog = "$env:temp\exlog.txt"
if (test-path $env:temp\exlog.txt) {remove-item $env:temp\exlog.txt}
foreach ($ExLogFile in $Exchfiles) {
$liste = select-string -Path $ExLogfile -pattern $EmailAddr | select line
If ($Liste) {
foreach ( $arr in $liste) {
$arr = $arr.line -split ","
$ht =@{}
$ht["Time"] = $arr
$ht["Connector"] = $arr[1]
$ht["ExchangeID"] = $arr[2]
$ht["MailFrom"] = $arr[7]
$ht | out-file $exlog -append
foreach ($ExchangeID in $HT.ExchangeID) {
$Treffer= select-string -path $ExLogFile -pattern $ExchangeID | select line | foreach-object {
$_.line.remove(0,56)
}
$Treffer | out-file $exlog -append
}
}
}
}
get-content $exlog | clip.exe
}
Please also mark the comments that contributed to the solution of the article
Content-Key: 239155
Url: https://administrator.de/contentid/239155
Printed on: April 26, 2024 at 19:04 o'clock
3 Comments
Latest comment
Moin Knorkator,
zur Info: Dafür gibts das schöne CMDLet Get-MessageTrackingLog in der EMC:
Grüße Uwe
zur Info: Dafür gibts das schöne CMDLet Get-MessageTrackingLog in der EMC:
get-messagetrackinglog -resultsize unlimited -Sender "user@sender.com" | Select Sender,{$_.Recipients},{$_.RecipientStatus},MessageSubject,TimeStamp, EventId, Source, SourceContext,MessageId,InternalMessageId,ClientIP,ClientHostName,ServerIP,ServerHostName,ConnectorId,TotalBytes,RecipientCount,RelatedRecipientAddress,Reference,ReturnPath,MessageInfo | Export-Csv "C:\Nachrichtenlog.csv"