Le post ci-dessous a été promu de la corbeille de brouillon en raison d’un engagement récent du client. Les administrateurs d’Exchange se sont habitués aux outils d’interface utilisateur de suivi des messages qui ont été livrés avec les versions précédentes d’Exchange. C’est tout à fait compréhensible puisqu’ils doivent examiner et résoudre de nombreux problèmes. On peut se demander si Steve de la comptabilité a reçu cet e-mail la semaine dernière, ou pourquoi les messages d’Anne des ventes sont bloqués dans une file d’attente ?
Depuis une dizaine d’années, l’outil de suivi des messages d’Exchange a été l’arme de choix pour de nombreux admins lors du dépannage de tels problèmes. Cependant, cela n’existe pas dans Exchange 2013 ou 2016. Au lieu de cela, nous pouvons utiliser Delivery Reports ou PowerShell pour interroger les journaux de suivi des messages.
Défilez vers le bas pour une astuce de pro sur l’ajout d’une interface graphique de retour au suivi des messages.
Dans la forme la plus simple, nous pouvons utiliser Get-MessageTrackingLog pour rechercher et renvoyer tous les hits du serveur spécifié. Dans toute grande organisation, faire défiler les chapitres de sortie est une perte de temps et n’est pas efficace. Nous devons appliquer une certaine logique de filtrage.
Recherche par expéditeur
Get-MessageTrackingLog -Sender [email protected]
Recherche par destinataire
Get-MessageTrackingLog -Recipient [email protected]
Recherche par domaine destinataire
Notez qu’il est également possible d’utiliser un caractère générique dans la recherche pour inclure un domaine entier :
Get-MessageTrackingLog -Recipients *@hotmail.co
Alternativement, nous pourrions utiliser une instruction where telle que celle ci-dessous, bien que cela soit généralement plus lent
Get-MessageTrackingLog | Where {$_.Recipients -like "*tailspintoys.com"}
Recherche par sujet
Get-MessageTrackingLog -MessageSubject "I Am Zorg"
Recherche par messageID
Get-MessageTrackingLog -MessageId <MessageID>
Recherche par fenêtre de temps
Get-MessageTrackingLog -ResultSize Unlimited -Start "3/28/2015 8:00AM" -End "3/28/2015 5:00PM" -EventId "Fail" -Sender "mailto:[email protected]"
Recherche par événement de message
Get-MessageTrackingLog -ResultSize Unlimited -Start "3/28/2015 8:00AM" -End "3/28/2015 5:00PM" -EventId "Fail" -Sender "mailto:[email protected]"
. Par Message EventID
Get-MessageTrackingLog -ResultSize Unlimited -EventId "Fail"
Multiple Exemple – Fenêtre de temps & EventID & Expéditeur
Les différents éléments peuvent être combinés pour filtrer les résultats indésirables.
Get-MessageTrackingLog -ResultSize Unlimited -Start "3/28/2015 8:00AM" -End "3/28/2015 5:00PM" -EventId "Fail" -Sender "[email protected]"
Avoir tous les messages de la dernière heure
Notez que AddHours est utilisé avec une valeur négative pour reculer la fenêtre de recherche d’une heure.
Get-MessageTrackingLog -Sender [email protected] -Server (Get-Date).AddHours(-1)
Exporter vers CSV
Si vous êtes ceinture noire d’Excel, il est possible d’exporter les résultats de la recherche vers un fichier CSV pour une analyse ultérieure dans Excel.
Get-MessageTrackingLog | Export-CSV –path C:\temp\tracking.csv –NoTypeInformation
Get-MessageTrackingLog | select @{Name="RecipientsXX";Expression={$_.Recipients}}
Mesurer le temps d’exécution
Measure-Command {Get-TransportServer | Get-MessageTrackingLog -MessageSubject "zorg" -ResultSize unlimited}
Instruction graphique de recherche pour Exchange 2013/2016
Comme indiqué au début de ce billet, il n’y a plus d’outil d’exploration du journal de suivi des messages dans Exchange 2013 ou 2016. Ce que nous pouvons faire est de façonner la commande de recherche souhaitée en utilisant l’un des exemples ci-dessus, puis d’utiliser la fonctionnalité native de PowerShell pour afficher les résultats dans une interface utilisateur.
C’est le Out-GridView qui est présent dans PowerShell depuis de nombreuses, nombreuses, nombreuses années.
A titre d’exemple simple:
Get-MessageTrackingLog | Out-GridView
.