Rutinu cmdlet môžete použiť na analýzu denníkov prepravy pri sledovaní e-mailov v službe Exchange. Get-MessageTrackingLog Konzola Shell pre správu servera Exchange. V tomto článku uvediem príklady jednoriadkových príkazov PowerShell, ktoré často používam pri vyhľadávaní a sledovaní smerovania pošty v serveroch Exchange Server 2016/2013/2010 a Office 365 (Exchange Online)..
Dovoľte mi pripomenúť, že denníky prepravy Exchange sú uložené v adresári % ExchangeInstallPath% TransportRoles \ Logs \ MessageTracking
a najefektívnejším a najflexibilnejším spôsobom analýzy týchto denníkov pri sledovaní správ v systéme Exchange je použitie rutiny cmdlet Get-MessageTrackingLog..
Najprv zvážte hlavné parametre rutiny Get-MessageTrackingLog, ktoré môžete použiť na filtrovanie udalostí v protokoloch. Najbežnejšie používané parametre cmdlet sú:
- odosielateľ - vyhľadávanie podľa odosielateľa;
- príjemcovia - vyhľadávanie podľa príjemcu;
- server - Vyhľadajte na konkrétnom transportnom serveri
- štart "02/30/2019 08:00:00" -koniec „02/31/2019 21:00:00“ - vyhľadajte konkrétne časové obdobie;
- MessageSubject - prehľadať predmet správy;
- EVENTIDE - vyhľadávanie podľa kódu udalosti servera (zvyčajne sa používajú príkazy RECEIVE, SEND, FAIL, DSN, DELIVER, BADMAIL, RESOLVE, EXPAND, REDIRECT, TRANSFER, SUBMIT, POISONMESSAGE, DEFER);
- MessageID - sledovanie písmen podľa jeho ID.
Ak spustíte rutinu cmdlet Get-MessageTrackingLog
bez parametrov sa zobrazia všetky udalosti z denníkov Exchange za posledných 30 dní. Je dobré, že pri takom spustení sa v rutiny cmdlet zobrazuje iba posledných 1000 udalostí. Ak chcete odstrániť limit počtu zobrazených udalostí, musíte zadať parameter -ResultSize Neobmedzené (neodporúča sa to bez zadania ďalších parametrov filtrovania z dôvodu možného vysokého zaťaženia servera).
Informácie o udalostiach na serveri Exchange môžete zobraziť vo forme stránky pomocou príkazu:
Get-MessageTrackingLog | Out-Host-stránkovanie
Na prezentáciu údajov v tabuľkovej forme a zarovnanie šírky stĺpcov použite cmdlet Format-Table:
Get-MessageTrackingLog | Tabuľka formátu -AutoSize
Ak vaša organizácia Exchange používa niekoľko serverov Hub Transport, na prehľadávanie protokolov servera zadajte názov servera ako argument parametra -Server alebo spustite príkaz vyhľadávania pre každý server Hub Transport:
Get-TransportServer | Get-MessageTrackingLog
Zobrazujeme všetky písmená za posledných 12 hodín ((Get-Date) .AddHours (-12)
), v ktorej je adresát z poštového systému @ gmail.com uvedený ako príjemca:
Get-MessageTrackingLog -Start (Get-Date) .AddHours (-12) -ResultSize neobmedzený | kde [string] $ _. recipient-like "*@gmail.com"
Ak chcete zobraziť všetky listy, ktoré konkrétny používateľ poslal na zadané obdobie cez určený server (v prehľade sa zobrazia iba určité polia):
Sledovanie správ SMS - VýsledokVeľkosť neobmedzená - Odosielať „[email protected]“ - server msk-hub-01 - Štart „03/30/2019 08:00:00“ - „04/04/2019 21:00:00“ | časová pečiatka pre výber objektu, odosielateľ, príjemcovia, MessageSubject, EventId | ft
Vyhľadajte všetky listy, ktoré poslal jeden používateľ druhému, a nahrajte výsledok do súboru CSV:
Get-MessageTrackingLog -Sender "[email protected]" -Recipients "[email protected]" -ResultSize unlimited -server msk-hub-01 | Časová pečiatka pre výber objektu, Odosielateľ, $ _. Príjemcovia, MessageSubject | Export-Csv-Cesta "C: \ ps \ exchange \ msg_tracking_out.csv" -Zakódovanie predvolené -Delimiter ";"
Vyhľadajte predmet listu. Ak chcete zobraziť všetky písmená s predmetom, ktorý obsahuje frázu „test“, spustite nasledujúci príkaz (výsledky vyhľadávania zobrazíte v samostatnom tabuľkovom grafickom okne s vhodnými možnosťami triedenia, filtrovania a vyhľadávania údajov, môžete použiť cmdlet outviewet view):
Get-MessageTrackingLog -MessageSubject "test" -ResultSize unlimited -server msk-hub-01 | Časová pečiatka pre výber objektu, Odosielateľ, $ _. Príjemcovia, MessageSubject | out-GridView
Môžete vyhľadávať podľa špecifického identifikátora správy (napríklad ste ho dostali od hlavičiek služieb správy v programe Outlook):
Get-MessageTrackingLog -messageID "[email protected]" -VýsledokVýpočet neobmedzený -server msk-hub-01 | Časová pečiatka pre výber objektu, Odosielateľ, $ _. Príjemcovia, Správa správ
Ak chcete vypočítať počet prichádzajúcich správ za posledných 7 dní pre konkrétnu poštovú schránku, postupujte takto:
(Get-MessageTrackingLog -EventID "RECEIVE" -Recipients "[email protected]" -ResultSize unlimited) .Count
Môžete zoskupovať štatistiku písmen. Napríklad by ste chceli vidieť, koľko listov od rôznych odosielateľov z domény mail.ru vaša organizácia dostala do 1 dňa (zobrazíme celkový počet listov poslaných každým externým odosielateľom):
Get-MessageTrackingLog -EventId "Receive" -Start (Get-Date) .AddDays (-1) -ResultSize Unlimited | Where-Object $ _. Podobá sa odosielateľovi "*@mail.ru" | Odosielateľ skupinových objektov | Počet objektov zoradenia - vzostupne | Tabuľka formátov *
Office 365 má možnosť prehľadávať protokoly sledovania z webového rozhrania servera Exchange Admin Center (EAC). Prejdite do sekcie Tok pošty -> Sledovanie správ. Vyplňte požadované polia pre vyhľadávanie. V podstate ide o webové rozhranie pre cmdlet Get-MessageTrackingLog, ktoré užívateľovi umožňuje vytvoriť príkaz PowerShell v jednoduchej forme na prehľadávanie správ pomocou protokolov..
Vyššie uvedené metódy vám pomôžu získať štatistiky o správach odoslaných a prijatých v systéme Exchange a diagnostikovať problémy s odosielaním správ.