Het onderstaande bericht is gepromoveerd uit de kladbak vanwege een recente klant engagement. Exchange beheerders zijn erg gewend geraakt aan de message tracking UI tools die zijn meegeleverd met de vorige Exchange builds. Dit is volkomen begrijpelijk aangezien zij talloze issues moeten onderzoeken en oplossen. Er kan een vraag zijn of Steve in accounting die e-mail vorige week heeft gekregen, of waarom de berichten van Anne in sales in een wachtrij blijven hangen?
Vanaf de laatste 10 jaar of zo is de Exchange Message Tracking Tool het wapen van keuze geweest voor veel admins bij het troubleshooten van dergelijke issues. Echter, dit bestaat niet in Exchange 2013 of 2016. In plaats daarvan kunnen we Delivery Reports of PowerShell gebruiken om de message tracking logs te bevragen.
Scroll naar beneden voor een pro tip over het toevoegen van een GUI terug naar message tracking.
In de meest eenvoudige vorm kunnen we Get-MessageTrackingLog gebruiken om te zoeken en alle hits van de opgegeven server te retourneren. In een grote organisatie is het scrollen door de ganse uitvoer een tijdverspilling en niet efficiënt. We moeten wat filter logica toepassen.
Zoeken op afzender
Get-MessageTrackingLog -Sender [email protected]
Zoeken op ontvanger
Get-MessageTrackingLog -Recipient [email protected]
Zoeken op domein van de ontvanger
Merk op dat het ook mogelijk is om een wildcard te gebruiken in de zoekopdracht om een heel domein op te nemen:
Get-MessageTrackingLog -Recipients *@hotmail.co
Aternatief kunnen we een where statement gebruiken, zoals hieronder, hoewel dit gewoonlijk langzamer zal zijn
Get-MessageTrackingLog | Where {$_.Recipients -like "*tailspintoys.com"}
Zoeken op onderwerp
Get-MessageTrackingLog -MessageSubject "I Am Zorg"
Zoeken op berichtID
Get-MessageTrackingLog -MessageId <MessageID>
Zoeken op tijdvenster
Get-MessageTrackingLog -ResultSize Unlimited -Start "3/28/2015 8:00AM" -End "3/28/2015 5:00PM" -EventId "Fail" -Sender "mailto:[email protected]"
Zoeken Op Message EventID
Get-MessageTrackingLog -ResultSize Unlimited -EventId "Fail"
Meervoudig Voorbeeld – Tijdvenster & EventID & Afzender
De verschillende elementen kunnen worden gecombineerd om ongewenste resultaten uit te filteren.
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
Merk op dat AddHours wordt gebruikt met een negatieve waarde om het zoekvenster een uur terug te zetten.
Get-MessageTrackingLog -Sender [email protected] -Server (Get-Date).AddHours(-1)
Export naar CSV
Als u een Excel-zwarte band bent, is het mogelijk om de zoekresultaten te exporteren naar een CSV-bestand voor latere analyse in Excel.
Get-MessageTrackingLog | Export-CSV –path C:\temp\tracking.csv –NoTypeInformation
Get-MessageTrackingLog | select @{Name="RecipientsXX";Expression={$_.Recipients}}
Meten uitvoeringstijd
Measure-Command {Get-TransportServer | Get-MessageTrackingLog -MessageSubject "zorg" -ResultSize unlimited}
Zoek GUI Voor Exchange 2013/2016
Zoals opgemerkt aan het begin van deze post is er niet langer een Message Tracking log Explorer tool in Exchange 2013 of 2016. Wat we wel kunnen doen is de gewenste zoekopdracht maken met behulp van een van de bovenstaande voorbeelden en vervolgens de native PowerShell-functionaliteit gebruiken om de resultaten weer te geven in een UI.
Dit is de Out-GridView die al vele, vele, vele jaren aanwezig is in PowerShell.
Als eenvoudig voorbeeld:
Get-MessageTrackingLog | Out-GridView