Get-MessageTrackingLog Exchange Log Tracking

Za pomocą polecenia cmdlet można analizować dzienniki transportu podczas śledzenia wiadomości e-mail w programie Exchange. Get-MessageTrackingLog Konsola Shell Management Exchange. W tym artykule wymienię przykłady jednowierszowych poleceń PowerShell, których często używam podczas wyszukiwania i śledzenia routingu poczty w Exchange Server 2016/2013/2010 i Office 365 (Exchange Online).

Przypomnę, że dzienniki transportu Exchange są przechowywane w katalogu % ExchangeInstallPath% TransportRoles \ Logs \ MessageTracking a najbardziej skutecznym i elastycznym sposobem analizowania tych dzienników podczas śledzenia wiadomości w systemie Exchange jest użycie polecenia cmdlet Get-MessageTrackingLog.

Przede wszystkim rozważ główne parametry polecenia cmdlet Get-MessageTrackingLog, którego można użyć do filtrowania zdarzeń w dziennikach. Najczęściej używane parametry polecenia cmdlet to:

  • Nadawca - wyszukiwanie według nadawcy;
  • Odbiorcy - wyszukiwanie według odbiorcy;
  • Serwer - Wyszukaj na konkretnym serwerze transportowym
  • Start „02/30/2019 08:00:00” -Koniec „02/31/2019 21:00:00” - wyszukaj określony czas;
  • MessageSubject - szukaj na temat wiadomości;
  • Eventid - wyszukiwanie według kodu zdarzenia serwera (zwykle używane są kody ODBIÓR, WYSŁANIE, AWARIA, DSN, DOSTAWA, BADMAIL, ROZDZIELCZOŚĆ, ROZSZERZENIE, REDIRECT, TRANSFER, PRZESYŁANIE, POISONMESSAGE, DEFER);
  • messageID - śledzenie liter według jego identyfikatora.

Jeśli uruchomisz polecenie cmdlet Get-MessageTrackingLog bez parametrów zostaną wyświetlone wszystkie zdarzenia z dzienników Exchange z ostatnich 30 dni. Dobrze, że przy takim uruchomieniu polecenie cmdlet wyświetla tylko ostatnie 1000 zdarzeń. Aby usunąć limit liczby wyświetlanych zdarzeń, musisz określić parametr -ResultSize Nieograniczony (nie jest to zalecane bez określania dodatkowych parametrów filtrowania ze względu na możliwe wysokie obciążenie serwera).

Możesz wyświetlić informacje o zdarzeniach Exchange w formie strony za pomocą polecenia:

Get-MessageTrackingLog | Out-Host-Paging

Aby przedstawić dane w formie tabelarycznej i wyrównać szerokość kolumn, użyj polecenia cmdlet Format-Table:

Get-MessageTrackingLog | Format-Table -AutoSize

Jeśli Twoja organizacja Exchange używa kilku serwerów Hub Transport, w celu przeszukania dzienników serwera podaj nazwę serwera jako argument parametru -Server lub uruchom polecenie wyszukiwania dla każdego serwera Hub Transport:

Get-TransportServer | Get-MessageTrackingLog

Wyświetlamy wszystkie litery w ciągu ostatnich 12 godzin ((Get-Date) .AddHours (-12)), w którym adresat z systemu pocztowego @ gmail.com jest wskazany jako odbiorca:

Get-MessageTrackingLog -Start (Get-Date) .AddHours (-12) -ResultSize nieograniczony | gdzie [ciąg] $ _. adresaci-jak „*@gmail.com”

Aby wyświetlić wszystkie listy wysłane przez określonego użytkownika przez określony czas przez określony serwer (w raporcie zostaną wyświetlone tylko niektóre pola):

Get-MessageTrackingLog -ResultSize nieograniczony -Sender „[email protected]” -server msk-hub-01 -Start ”03/30/2019 08:00:00„ -End ”04/04/2019 21:00:00 | select-object Datownik, Nadawca, Odbiorcy, MessageSubject, EventId | ft

Znajdź wszystkie listy wysłane przez jednego użytkownika do drugiego i prześlij wynik do pliku CSV:

Get-MessageTrackingLog -Sender "[email protected]" -Recipients "[email protected]" -ResultSize nieograniczony-serwer msk-hub-01 | Znacznik czasu obiektu, nadawca, $ _. Recipients, MessageSubject | Export-Csv -Path "C: \ ps \ exchange \ msg_tracking_out.csv" -Encoding Default -Delimiter ";"

Szukaj na temat listu. Aby wyświetlić wszystkie litery z wierszem tematu zawierającym frazę „test”, uruchom następujące polecenie (aby wyświetlić wyniki wyszukiwania w osobnym tabelarycznym oknie graficznym z wygodnymi opcjami sortowania, filtrowania i wyszukiwania danych, możesz użyć polecenia cmdlet out-gridview):

Get-MessageTrackingLog -MessageSubject „test” -ResultSize nieograniczony -server msk-hub-01 | Znacznik czasu obiektu, nadawca, $ _. Recipients, MessageSubject | out-gridview

Możesz wyszukiwać według określonego identyfikatora wiadomości (na przykład otrzymałeś go z nagłówków usługi wiadomości w Outlooku):

Get-MessageTrackingLog -messageID "[email protected]" -ResultSize nieograniczony -server msk-hub-01 | Znacznik czasu obiektu, nadawca, $ _. Recipients, MessageSubject

Aby obliczyć liczbę wiadomości przychodzących z ostatnich 7 dni dla określonej skrzynki pocztowej, wykonaj następujące czynności:

(Get-MessageTrackingLog -EventID „RECEIVE” -Recipients ”[email protected]„ -ResultSize nieograniczony).

Możesz wyświetlać statystyki dotyczące liter z grupowaniem. Na przykład chcesz zobaczyć, ile listów od różnych nadawców z domeny mail.ru Twoja organizacja otrzymała w ciągu 1 dnia (wyświetlimy całkowitą liczbę listów wysłanych przez każdego zewnętrznego nadawcę):

Get-MessageTrackingLog -EventId „Receive” -Start (Get-Date) .AddDays (-1) -ResultSize Unlimited | Where-Object $ _. Podobny do nadawcy „*@mail.ru” | Nadawca obiektu grupowego | Sortuj liczbę obiektów - malejące | Tabela formatów *

Aby wyszukać wiadomości e-mail przechowywane w skrzynkach pocztowych użytkowników Exchange, użyj polecenia cmdlet Search-Mailbox.

Office 365 ma możliwość wyszukiwania dzienników śledzenia z interfejsu internetowego Exchange Admin Center (EAC). Przejdź do sekcji Przepływ poczty -> Śledzenie wiadomości. Wypełnij wymagane pola wyszukiwania. Zasadniczo jest to interfejs sieciowy polecenia cmdlet Get-MessageTrackingLog, który umożliwia użytkownikowi utworzenie polecenia PowerShell w prostej formie do wyszukiwania wiadomości według dziennika.

Powyższe metody pomogą uzyskać statystyki dotyczące wiadomości wysyłanych i odbieranych w systemie Exchange oraz diagnozować problemy z wysyłaniem wiadomości.