Sledování protokolu Get-MessageTrackingLog Exchange

Rutinu cmdlet můžete použít k analýze transportních protokolů při sledování e-mailů na serveru Exchange. Get-MessageTrackingLog Konzola Exchange Management Shell. V tomto článku uvedu příklady jednořádkových příkazů PowerShell, které často používám při vyhledávání a sledování směrování pošty v Exchange Server 2016/2013/2010 a Office 365 (Exchange Online)..

Dovolte mi připomenout, že protokoly přenosu Exchange jsou uloženy v adresáři % ExchangeInstallPath% TransportRoles \ Logs \ MessageTracking a nejefektivnějším a nejflexibilnějším způsobem analýzy těchto protokolů při sledování zpráv v systému Exchange je použití cmdlet Get-MessageTrackingLog.

Nejprve zvažte hlavní parametry cmdlet Get-MessageTrackingLog, které můžete použít k filtrování událostí v protokolech. Nejčastěji používané parametry cmdlet jsou:

  • Odesílatel - hledat podle odesílatele;
  • Příjemci - vyhledávání podle příjemce;
  • Server - Hledání na konkrétním transportním serveru
  • Začněte "02/30/2019 08:00:00" -Konec „02/31/2019 21:00:00“ - hledejte konkrétní časové období;
  • MessageSubject - hledat předmět zprávy;
  • Eventid - vyhledávání podle kódu události serveru (obvykle se používají kódy RECEIVE, SEND, FAIL, DSN, DELIVER, BADMAIL, RESOLVE, EXPAND, REDIRECT, TRANSFER, SUBMIT, POISONMESSAGE, DEFER);
  • messageID - sledování písmen podle jeho ID.

Pokud spustíte rutinu Get-MessageTrackingLog bez parametrů se zobrazí všechny události z protokolů Exchange za posledních 30 dní. Je dobré, že při takovém běhu cmdlet zobrazuje pouze posledních 1000 událostí. Chcete-li odstranit limit počtu zobrazených událostí, musíte zadat parametr -ResultSize Neomezeno (nedoporučuje se to bez zadávání dalších parametrů filtrování kvůli možné vysoké zátěži na serveru).

Informace o událostech serveru Exchange můžete zobrazit ve formě stránky pomocí příkazu:

Get-MessageTrackingLog | Out-Host-stránkování

Chcete-li prezentovat data ve formě tabulky a zarovnat šířku sloupců, použijte rutinu cmdlet formátu:

Get-MessageTrackingLog | Tabulka formátu -AutoSize

Pokud vaše organizace Exchange používá několik serverů Hub Transport, prohledejte protokoly serveru, zadejte název serveru jako argument parametru -Server nebo spusťte vyhledávací příkaz pro každý server Hub Transport:

Get-TransportServer | Get-MessageTrackingLog

Zobrazujeme všechna písmena za posledních 12 hodin ((Get-Date) .AddHours (-12)), ve kterém je adresát z poštovního systému @ gmail.com uveden jako příjemce:

Get-MessageTrackingLog -Start (Get-Date) .AddHours (-12) -ResultSize neomezený | kde [řetězec] $ _. příjemci-jako "*@gmail.com"

Chcete-li zobrazit všechna písmena zaslaná konkrétním uživatelem na zadané období přes určený server (v sestavě se zobrazí pouze určitá pole):

Get-MessageTrackingLog -ResultSize unlimited -Sender "[email protected]” -server msk-hub-01 -Start "03/30/2019 08:00:00" -End "04/04/2019 21:00:00" | Časové razítko select-object, Sender, Recipients, MessageSubject, EventId | ft

Najděte všechna písmena zaslaná jedním uživatelem jinému a výsledek nahrajte do souboru CSV:

Get-MessageTrackingLog -Sender "[email protected]" -Recipients "[email protected]" -ResultSize unlimited -server msk-hub-01 | Časové razítko pro výběr objektu, Odesílatel, $ _. Příjemci, MessageSubject | Export-Csv-Cesta "C: \ ps \ exchange \ msg_tracking_out.csv" -Ekódování výchozí -Delimiter ";"

Hledání předmětu dopisu. Chcete-li zobrazit všechna písmena s řádkem předmětu obsahujícím frázi „test“, spusťte následující příkaz (výsledky hledání zobrazíte v samostatném tabulkovém grafickém okně s vhodnými možnostmi třídění, filtrování a vyhledávání dat, můžete použít rutinu out-gridview):

Get-MessageTrackingLog -MessageSubject "test" -ResultSize neomezený -server msk-hub-01 | Časové razítko pro výběr objektu, Odesílatel, $ _. Příjemci, MessageSubject | out-gridview

Můžete vyhledávat podle konkrétního identifikátoru zprávy (například jste jej obdrželi ze záhlaví služby v aplikaci Outlook):

Get-MessageTrackingLog -messageID "[email protected]" -ResultSize unlimited -server msk-hub-01 | Časové razítko pro výběr objektu, Odesílatel, $ _. Příjemci, MessageSubject

Chcete-li vypočítat počet příchozích zpráv za posledních 7 dní pro konkrétní poštovní schránku, postupujte takto:

(Get-MessageTrackingLog -EventID "RECEIVE" -Recipients "[email protected]" -ResultSize unlimited) .Count

Můžete zobrazit statistiky písmen se seskupením. Například chcete zjistit, kolik dopisů od různých odesílatelů z domény mail.ru vaše organizace obdržela za 1 den (zobrazíme celkový počet dopisů odeslaných každým externím odesílatelem):

Get-MessageTrackingLog -EventId "Receive" -Start (Get-Date) .AddDays (-1) -ResultSize Unlimited | Where-Object $ _. Sender-like "*@mail.ru" | Odesílatel skupinových objektů | Počet objektů třídění - vzestupně | Tabulka formátů *

Chcete-li hledat e-maily uložené ve schránkách uživatelů serveru Exchange, použijte rutinu Search-Mailbox.

Office 365 má možnost prohledávat protokoly sledování z webového rozhraní Exchange Admin Center (EAC). Přejděte do sekce Tok pošty -> Sledování zpráv. Vyplňte povinná pole pro vyhledávání. V podstatě se jedná o webové rozhraní pro cmdlet Get-MessageTrackingLog, které uživateli umožňuje vytvořit příkaz PowerShell v jednoduché formě pro prohledávání zpráv pomocí protokolů.

Výše uvedené metody vám pomohou získat statistiky o zprávách odeslaných a přijatých v systému Exchange a diagnostikovat problémy s odesíláním zpráv.