Il seguente post è stato promosso dal cestino delle bozze a causa di un recente impegno del cliente. Gli amministratori di Exchange sono cresciuti molto abituati agli strumenti UI di tracciamento dei messaggi che sono stati forniti con le precedenti build di Exchange. Questo è completamente comprensibile dal momento che sono tenuti a indagare e risolvere numerosi problemi. Ci si può chiedere se Steve della contabilità ha ricevuto quell’e-mail la settimana scorsa, o perché i messaggi di Anne delle vendite sono bloccati in una coda?

Negli ultimi 10 anni circa lo strumento di tracciamento dei messaggi di Exchange è stato l’arma preferita da molti amministratori per la risoluzione di questi problemi. Tuttavia, questo non esiste in Exchange 2013 o 2016. Invece possiamo usare Delivery Reports o PowerShell per interrogare i log di tracciamento dei messaggi.

Scorri in fondo per un pro tip su come aggiungere una GUI al tracciamento dei messaggi.

Nella forma più semplice, possiamo usare Get-MessageTrackingLog per cercare e restituire tutti i risultati dal server specificato. In qualsiasi organizzazione di grandi dimensioni, scorrere attraverso i banchi di output è una perdita di tempo e non è efficiente. Abbiamo bisogno di applicare una logica di filtraggio.

Ricerca per mittente

 Get-MessageTrackingLog -Sender [email protected]

Ricerca per destinatario

 Get-MessageTrackingLog -Recipient [email protected]

Ricerca per dominio destinatario

Nota che è anche possibile usare un carattere jolly nella ricerca per includere un intero dominio:

 Get-MessageTrackingLog -Recipients *@hotmail.co

In alternativa potremmo usare una dichiarazione where come la seguente, anche se questo sarà tipicamente più lento

 Get-MessageTrackingLog | Where {$_.Recipients -like "*tailspintoys.com"}

Ricerca per soggetto

 Get-MessageTrackingLog -MessageSubject "I Am Zorg"

Ricerca per MessageID

 Get-MessageTrackingLog -MessageId <MessageID>

Ricerca per finestra temporale

 Get-MessageTrackingLog -ResultSize Unlimited -Start "3/28/2015 8:00AM" -End "3/28/2015 5:00PM" -EventId "Fail" -Sender "mailto:[email protected]"

Ricerca Per EventID del messaggio

 Get-MessageTrackingLog -ResultSize Unlimited -EventId "Fail"

Esempio multiplo – Finestra temporale & EventID & Mittente

I vari elementi possono essere combinati per filtrare i risultati indesiderati.

 Get-MessageTrackingLog -ResultSize Unlimited -Start "3/28/2015 8:00AM" -End "3/28/2015 5:00PM" -EventId "Fail" -Sender "[email protected]"

Prendi tutti i messaggi nell’ultima ora

Nota che AddHours è usato con un valore negativo per spostare la finestra di ricerca indietro di un’ora.

 Get-MessageTrackingLog -Sender [email protected] -Server (Get-Date).AddHours(-1)

Esporta in CSV

Se sei una cintura nera di Excel, è possibile esportare i risultati della ricerca in un file CSV per una successiva analisi in Excel.

 Get-MessageTrackingLog | Export-CSV –path C:\temp\tracking.csv –NoTypeInformation
 Get-MessageTrackingLog | select @{Name="RecipientsXX";Expression={$_.Recipients}}

Misura il tempo di esecuzione

 Measure-Command {Get-TransportServer | Get-MessageTrackingLog -MessageSubject "zorg" -ResultSize unlimited}

Ricerca GUI per Exchange 2013/2016

Come notato all’inizio di questo post non esiste più uno strumento Message Tracking log Explorer in Exchange 2013 o 2016. Quello che possiamo fare è creare il comando di ricerca desiderato utilizzando uno degli esempi di cui sopra e quindi utilizzare la funzionalità nativa di PowerShell per visualizzare i risultati in una UI.

Questa è la Out-GridView che è stata presente in PowerShell per molti, molti, molti anni.

Come un semplice esempio:

Get-MessageTrackingLog | Out-GridView

Exchange 2016 Get-MessageTrackingLog With Out-GridView

Articles

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.