Nedenstående indlæg blev forfremmet fra kladdebakken på grund af et nyligt kundeengagement. Exchange-administratorer er blevet meget vant til de UI-værktøjer til sporing af meddelelser, der er blevet leveret med de tidligere Exchange-byggerier. Dette er helt forståeligt, da de er forpligtet til at undersøge og løse mange problemer. Der kan være et spørgsmål om, hvorvidt Steve i regnskabsafdelingen fik den e-mail i sidste uge, eller hvorfor sidder beskederne fra Anne i salgsafdelingen fast i en kø?
I de sidste 10 år eller deromkring har Exchange Message Tracking Tool været det foretrukne våben for mange administratorer, når de skal fejlfinde sådanne problemer. Dette findes imidlertid ikke i Exchange 2013 eller 2016. I stedet kan vi bruge Delivery Reports eller PowerShell til at forespørge på logfilerne til sporing af meddelelser.
Rul til bunden for at få et pro-tip om at tilføje en GUI tilbage til sporing af meddelelser.
I den mest enkle form kan vi bruge Get-MessageTrackingLog til at søge og returnere alle hits fra den angivne server. I enhver stor organisation er det spild af tid og ikke effektivt at scrolle gennem de mange output. Vi er nødt til at anvende en vis filtreringslogik.
Søg efter afsender
Get-MessageTrackingLog -Sender [email protected]
Søg efter modtager
Get-MessageTrackingLog -Recipient [email protected]
Søg efter modtagerdomæne
Bemærk, at det også er muligt at bruge et wildcard i søgningen for at inkludere et helt domæne:
Get-MessageTrackingLog -Recipients *@hotmail.co
Alternativt kan vi bruge en where-angivelse som f.eks, selvom dette typisk vil være langsommere
Get-MessageTrackingLog | Where {$_.Recipients -like "*tailspintoys.com"}
Søgning efter emne
Get-MessageTrackingLog -MessageSubject "I Am Zorg"
Søgning efter MessageID
Get-MessageTrackingLog -MessageId <MessageID>
Søgning efter tidsvindue
Get-MessageTrackingLog -ResultSize Unlimited -Start "3/28/2015 8:00AM" -End "3/28/2015 5:00PM" -EventId "Fail" -Sender "mailto:[email protected]"
Søgning By Message EventID
Get-MessageTrackingLog -ResultSize Unlimited -EventId "Fail"
Multiple Example – Time Window & EventID & Sender
De forskellige elementer kan kombineres for at filtrere uønskede resultater fra.
Get-MessageTrackingLog -ResultSize Unlimited -Start "3/28/2015 8:00AM" -End "3/28/2015 5:00PM" -EventId "Fail" -Sender "[email protected]"
Hent alle meddelelser i den sidste time
Bemærk, at AddHours bruges med en negativ værdi for at flytte søgevinduet en time tilbage.
Get-MessageTrackingLog -Sender [email protected] -Server (Get-Date).AddHours(-1)
Eksport til CSV
Hvis du er et Excel-sort bælte, er det muligt at eksportere søgeresultaterne til en CSV-fil med henblik på efterfølgende analyse i Excel.
Get-MessageTrackingLog | Export-CSV –path C:\temp\tracking.csv –NoTypeInformation
Get-MessageTrackingLog | select @{Name="RecipientsXX";Expression={$_.Recipients}}
Måling af udførelsestid
Measure-Command {Get-TransportServer | Get-MessageTrackingLog -MessageSubject "zorg" -ResultSize unlimited}
GUI til søgning i Exchange 2013/2016
Som nævnt i starten af dette indlæg er der ikke længere et værktøj til undersøgelse af logfiler til sporing af meddelelser i Exchange 2013 eller 2016. Det, vi kan gøre, er at udforme den ønskede søgekommando ved hjælp af et af ovenstående eksempler og derefter bruge native PowerShell-funktionalitet til at vise resultaterne i en brugergrænseflade.
Det er Out-GridView, som har været til stede i PowerShell i mange, mange, mange, mange år.
Som et simpelt eksempel:
Get-MessageTrackingLog | Out-GridView