Get-MessageTrackingLog: Durchsuchen Sie Nachrichtenverfolgungsprotokolle auf Exchange Server
Sie können das Cmdlet Get-MessageTrackingLog in der Exchange-Verwaltungsshell verwenden, um den Nachrichtenfluss und die Nachrichtenforensik zu analysieren und verschiedene Informationen zu Nachrichten abzurufen, die von einem bestimmten Postfach in Ihrer E-Mail-Organisation gesendet oder empfangen werden. In diesem Artikel zeige ich mehrere Beispiele für einzeilige PowerShell-Befehle, die ich häufig zum Verfolgen von Nachrichten auf Exchange Server 2016/2013/2010 und Office 365 (Exchange Online) verwende.
Ich möchte Sie daran erinnern, dass sich die Exchange-Transportprotokolle im befinden
%ExchangeInstallPath%TransportRoles\Logs\MessageTrackingOrdner. Und die effizienteste und flexibelste Möglichkeit, Nachrichtenverfolgungsprotokolle in Exchange zu analysieren, ist die Verwendung des Cmdlets Get-MessageTrackingLog.
Betrachten Sie zunächst die wichtigsten Get-MessageTrackingLog-Parameter, die Sie zum Filtern von Ereignissen in den Protokollen verwenden können. Die folgenden Cmdlet-Parameter werden am häufigsten verwendet:
- Sender
- Suche nach Absender;
- Recipients
-
— Suche nach Empfänger;
- Server
- Suche auf dem spezifischen Transportserver;
- Start “11/30/2019 08:00:00” -End “12/18/2019 21:00:00”
— Suche nach einem bestimmten Zeitraum;
- MessageSubject
— Suche nach Nachrichtenbetreff;
- EventID
- Suche nach Exchange-Ereignis (in der Regel werden folgende Codes verwendet: RECEIVE, SEND, FAIL, DSN, DELIVER, BADMAIL, RESOLVE, EXPAND, REDIRECT, TRANSFER, SUBMIT, POISONMESSAGE, DEFER);
- messageID
- Verfolgung anhand einer Nachrichten-ID.
Wenn Sie das Cmdlet Get-MessageTrackingLog ohne Parameter ausführen, werden alle Ereignisse aus den Exchange-Transportprotokollen der letzten 30 Tage angezeigt. Das Cmdlet zeigt nur die letzten 1.000 Ereignisse an. Um diese Einschränkung aufzuheben, verwenden Sie die
-ResultSize UnlimitedParameter. (Es wird nicht empfohlen, auf einige zusätzliche Filterparameter zu verzichten, da Ihr Transportserver möglicherweise stark ausgelastet ist.)
Mit diesem Befehl können Sie die Informationen zu Ihren Exchange-Ereignissen Seite für Seite anzeigen:
Get-MessageTrackingLog | Out-Host -Paging
Um die Daten im Tabellenformat anzuzeigen und die Spaltenbreite anzupassen, wird das Cmdlet Format-Table verwendet:
Get-MessageTrackingLog | Format-Table -AutoSizeWenn in Ihrer Exchange-Organisation mehrere Hub-Transport-Server verwendet werden, müssen Sie den Namen eines zu durchsuchenden Servers als Argument angeben
-ServerParameter . Oder führen Sie den Nachrichtenverfolgungsbefehl für jeden Ihrer Hub-Transport-Server mit der Pipe aus:
Get-TransportServer | Get-MessageTrackingLogLassen Sie uns alle E-Mails der letzten 24 Stunden anzeigen (
(Get-Date).AddHours(-24)), in dem ein Empfänger aus der Domain @gmail.com angegeben ist:
Get-MessageTrackingLog -Start (Get-Date).AddHours(-24) -ResultSize unlimited | where {[string]$_.recipients -like "*@gmail.com"}Um alle E-Mails anzuzeigen, die von einem bestimmten Benutzer in einem bestimmten Zeitraum über einen bestimmten Server gesendet wurden, verwenden Sie den folgenden Befehl (nur die spezifischen Tracking-Felder werden im Bericht angezeigt):
Get-MessageTrackingLog -ResultSize unlimited -Sender "cmansion@a-d.site” -server rome-hub-01 -Start "11/30/2019 06:00:00" -End "12/13/2019 22:00:00" |select-object Timestamp,Sender,Recipients,MessageSubject,EventId|ftLassen Sie uns alle E-Mails finden, die von einem Benutzer an einen anderen gesendet wurden, und die Suchergebnisse in eine CSV-Datei exportieren:
Get-MessageTrackingLog -Sender "cmansion@a-d.site" -Recipients "amorato@a-d.site" -ResultSize unlimited -server rome-hub-01| Select-Object Timestamp,Sender,{$_.recipients},MessageSubject | Export-Csv -Path "C:\Export\exchange\exchange_tracking_logs.csv" -Encoding Default -Delimiter ";"Sie können nach dem Betreff der Nachricht suchen. Um alle E-Mails mit dem Wort „test“ im Betrefffeld anzuzeigen, führen Sie den folgenden Befehl aus. (Um die Ergebnisse in einem separaten Grafikfenster als Tabelle mit den praktischen Sortier-, Filter- und Suchfunktionen anzuzeigen, können Sie das Cmdlet Out-gridview verwenden.)
Get-MessageTrackingLog -MessageSubject "test" -ResultSize unlimited -server rome-hub-01| Select-Object Timestamp,Sender, {$_.recipients}, MessageSubject | out-gridview
Sie können nach der spezifischen Nachrichten-ID suchen (Sie können sie dem Nachrichtenkopf in Outlook entnehmen):
Get-MessageTrackingLog -messageID "41A4321C3543314FFFFF23122F2BDB7ABD00342@rome-hub-01.a-d.site" -ResultSize unlimited -server rome-hub-01| Select-Object Timestamp,Sender, {$_.recipients}, MessageSubjectFühren Sie den folgenden Befehl aus, um die Anzahl der eingehenden E-Mail-Nachrichten für das jeweilige Postfach in den letzten 7 Tagen zu zählen:
(Get-MessageTrackingLog -EventID "RECEIVE" -Recipients "amorato@a-d.site" -ResultSize unlimited).CountSie können die interessanteren Nachrichtenstatistiken anzeigen. Sie möchten beispielsweise sehen, wie viele E-Mails von verschiedenen Absendern aus dem
gmail.comdie Benutzer Ihres Unternehmens in den letzten 5 Tagen erhalten haben (wir zeigen die Gesamtzahl der von jedem externen Absender gesendeten E-Mails an):
Get-MessageTrackingLog -EventId "Receive" -Start (Get-Date).AddDays(-5) -ResultSize Unlimited | Where-Object {$_.Sender -like "*@gmail.com"} | Group-Object Sender | Sort-Object Count -Descending | Format-Table *Um in den Exchange-Benutzerpostfächern gespeicherte E-Mails zu finden, verwenden Sie das Cmdlet Search-Mailbox.
Mit Office 365 können Sie die Suche nach Nachrichtenverfolgungsprotokollen über das Exchange Admin Center (EAC) durchführen. Gehen Sie zu Mail Flow -> Message Trace. Füllen Sie die Suchfelder aus. Dies ist eigentlich die Webschnittstelle für das Cmdlet Get-MessageTrackingLog, das es dem Benutzer ermöglicht, PowerShell-Tracking-Befehle in einem einfachen Webformular zu generieren.
Die oben betrachteten Methoden helfen Ihnen, Statistiken über die gesendeten und empfangenen Nachrichten in Ihrem Exchange-System zu erhalten und verschiedene E-Mail-Transportprobleme zu diagnostizieren.