Poniższy post został przeniesiony z draft bin ze względu na ostatnie zaangażowanie klienta. Administratorzy Exchange bardzo przyzwyczaili się do narzędzi Message Tracking UI, które dostarczane były wraz z poprzednimi buildami Exchange. Jest to całkowicie zrozumiałe, ponieważ są oni zobowiązani do rozwiązywania wielu problemów. Może pojawić się pytanie czy Steve z księgowości dostał tego maila w zeszłym tygodniu, lub dlaczego wiadomości od Anne z działu sprzedaży utknęły w kolejce? Przez ostatnie 10 lat narzędzie Exchange Message Tracking Tool było bronią z wyboru dla wielu administratorów podczas rozwiązywania takich problemów. Jednak w Exchange 2013 lub 2016 nie ma tego narzędzia. Zamiast tego możemy użyć Delivery Reports lub PowerShell do odpytywania logów śledzenia wiadomości.
Przewiń na sam dół po pro tip na dodanie GUI z powrotem do śledzenia wiadomości.
W najprostszej formie możemy użyć Get-MessageTrackingLog aby wyszukać i zwrócić wszystkie trafienia z określonego serwera. W każdej dużej organizacji, przewijanie listy wyników jest stratą czasu i nie jest efektywne. Musimy zastosować pewną logikę filtrowania.
Search By Sender
Get-MessageTrackingLog -Sender [email protected]
Search By Recipient
Get-MessageTrackingLog -Recipient [email protected]
Search By Recipient Domain
Zauważ, że możliwe jest również użycie symbolu wieloznacznego w wyszukiwaniu, aby uwzględnić całą domenę:
Get-MessageTrackingLog -Recipients *@hotmail.co
Alternatywnie moglibyśmy użyć instrukcji where, takiej jak poniżej, chociaż będzie to zazwyczaj wolniejsze
Get-MessageTrackingLog | Where {$_.Recipients -like "*tailspintoys.com"}
Search By Subject
Get-MessageTrackingLog -MessageSubject "I Am Zorg"
Search By MessageID
Get-MessageTrackingLog -MessageId <MessageID>
Search By Time Window
Get-MessageTrackingLog -ResultSize Unlimited -Start "3/28/2015 8:00AM" -End "3/28/2015 5:00PM" -EventId "Fail" -Sender "mailto:[email protected]"
Search By Message EventID
Get-MessageTrackingLog -ResultSize Unlimited -EventId "Fail"
Multiple Example – Time Window & EventID & Sender
Różne elementy można łączyć w celu odfiltrowania niepożądanych wyników.
Get-MessageTrackingLog -ResultSize Unlimited -Start "3/28/2015 8:00AM" -End "3/28/2015 5:00PM" -EventId "Fail" -Sender "[email protected]"
Get All Messages In the Last Hour
Zauważ, że AddHours jest używane z wartością ujemną, aby przesunąć okno wyszukiwania o godzinę do tyłu.
Get-MessageTrackingLog -Sender [email protected] -Server (Get-Date).AddHours(-1)
Eksport do CSV
Jeśli jesteś czarnym pasem Excela, możliwe jest wyeksportowanie wyników wyszukiwania do pliku CSV w celu późniejszej analizy w Excelu.
Get-MessageTrackingLog | Export-CSV –path C:\temp\tracking.csv –NoTypeInformation
Get-MessageTrackingLog | select @{Name="RecipientsXX";Expression={$_.Recipients}}
Measure Execution Time
Measure-Command {Get-TransportServer | Get-MessageTrackingLog -MessageSubject "zorg" -ResultSize unlimited}
Search GUI For Exchange 2013/2016
Jak zauważyliśmy na początku tego wpisu nie ma już narzędzia Message Tracking log Explorer w Exchange 2013 lub 2016. To co możemy zrobić to stworzyć pożądane polecenie wyszukiwania używając jednego z powyższych przykładów a następnie użyć natywnej funkcjonalności PowerShella do wyświetlenia wyników w UI.
Jest to Out-GridView który jest obecny w PowerShellu od wielu, wielu, wielu lat.
Jako prosty przykład:
Get-MessageTrackingLog | Out-GridView
Przykłady