Get-MessageTrackingLog: registros de seguimiento de mensajes de búsqueda en Exchange Server

Puedes usar el Get-MessageTrackingLog cmdlet en el Shell de administración de Exchange para analizar el flujo de correo, el análisis forense de mensajes y obtener información diferente sobre los mensajes enviados o recibidos por un buzón específico en su organización de correo electrónico. En este artículo, mostraré varios ejemplos de comandos de una sola línea de PowerShell que suelo usar para rastrear mensajes en Exchange Server 2016/2013/2010 y Office 365 (Exchange Online).

Permítame recordarle que los registros de transporte de Exchange se encuentran en el %ExchangeInstallPath%TransportRolesLogsMessageTracking carpeta. Y la forma más eficiente y flexible de analizar los registros de seguimiento de mensajes en Exchange es usar el cmdlet Get-MessageTrackingLog.

En primer lugar, considere los parámetros principales de Get-MessageTrackingLog que puede usar para filtrar eventos en los registros. Los siguientes parámetros de cmdlet se usan con más frecuencia:

  • Remitente – búsqueda por remitente;
  • Destinatarios — búsqueda por destinatario;
  • Servidor – buscar en el servidor de transporte específico;
  • Comienzo “30/11/2019 08:00:00” -Fin “18/12/2019 21:00:00”: busque el período de tiempo específico;
  • Asunto del mensaje — buscar por asunto del mensaje;
  • ID de evento – búsqueda por evento de intercambio (por regla general, se utilizan los siguientes códigos: RECIBIR, ENVIAR, FALLA, DSN, ENTREGAR, CORREO ERROR, RESOLVER, EXPANDIR, REDIRECCIONAR, TRANSFERIR, ENVIAR, MENSAJE ENVENENADO, APLAZAR);
  • ID de mensaje – seguimiento por un ID de mensaje.

Si ejecuta el cmdlet Get-MessageTrackingLog sin ningún parámetro, se mostrarán todos los eventos de los registros de transporte de Exchange de los últimos 30 días. El cmdlet muestra solo los últimos 1000 eventos. Para eliminar esta restricción, utilice el –ResultSize Unlimited parámetro. (No se recomienda hacerlo sin algunos parámetros de filtro adicionales debido a la carga potencialmente alta en su servidor de transporte).

Puede mostrar la información sobre sus eventos de Exchange página por página usando este comando:

Get-MessageTrackingLog | Out-Host –Paging

Get-MessageTrackingLog: cmdlet de powershell para buscar registros de seguimiento de mensajes por remitente o destinatario

Para mostrar los datos en formato de tabla y ajustar el ancho de columna, se utiliza el cmdlet Format-Table:

Get-MessageTrackingLog | Format-Table –AutoSize

Si se utilizan varios servidores de transporte de concentradores en su organización de Exchange, deberá especificar el nombre de un servidor para buscar como argumento del –Server parámetro O ejecute el comando de seguimiento de mensajes para cada uno de sus servidores Hub Transport con la tubería:

Get-TransportServer | Get-MessageTrackingLog

Vamos a mostrar todos los correos electrónicos de las últimas 24 horas ((Get-Date).AddHours(-24)), en el que se especifica un destinatario del dominio @gmail.com:

Get-MessageTrackingLog -Start (Get-Date).AddHours(-24) -ResultSize unlimited | where {[string]$_.recipients -like "*@gmail.com"}

Get-MessageTrackingLog último día por destinatario

Para mostrar todos los correos electrónicos enviados por un usuario específico a través de un servidor determinado en un período de tiempo determinado, use el siguiente comando (solo se mostrarán los campos de seguimiento específicos en el informe):

Get-MessageTrackingLog -ResultSize unlimited –Sender "[email protected]” –server rome-hub-01 -Start "11/30/2019 06:00:00" -End "12/13/2019 22:00:00" |select-object Timestamp,Sender,Recipients,MessageSubject,EventId|ft

Buscar registros de seguimiento de mensajes por intervalo de tiempo y fecha

Busquemos todos los correos electrónicos enviados por un usuario a otro y exportemos los resultados de la búsqueda a un archivo CSV:

Get-MessageTrackingLog -Sender "[email protected]" -Recipients "[email protected]" -ResultSize unlimited –server rome-hub-01| Select-Object Timestamp,Sender,{$_.recipients},MessageSubject | Export-Csv -Path "C:Exportexchangeexchange_tracking_logs.csv" -Encoding Default -Delimiter ";"

Puede buscar por el asunto del mensaje. Para mostrar todos los correos electrónicos con la palabra «prueba» en el campo de asunto, ejecute el siguiente comando. (Para mostrar los resultados en una ventana gráfica separada como una tabla con las convenientes funciones de clasificación, filtrado y búsqueda, puede usar el fuera de la cuadrícula cmdlet.)

Get-MessageTrackingLog -MessageSubject "test" -ResultSize unlimited –server rome-hub-01| Select-Object Timestamp,Sender, {$_.recipients}, MessageSubject | out-gridview

Vista de cuadrícula Get-MessageTrackingLog

Puede buscar por el ID de mensaje específico (puede obtenerlo del encabezado del mensaje en Outlook):

Get-MessageTrackingLog -messageID "[email protected]" -ResultSize unlimited –server rome-hub-01| Select-Object Timestamp,Sender, {$_.recipients}, MessageSubject

Para contar la cantidad de mensajes de correo electrónico entrantes para el buzón específico durante los últimos 7 días, ejecute el siguiente comando:

(Get-MessageTrackingLog -EventID "RECEIVE" -Recipients "[email protected]" -ResultSize unlimited).Count

Puede mostrar las estadísticas de mensajes más interesantes. Por ejemplo, desea ver cuántos correos electrónicos de diferentes remitentes del gmail.com han sido recibidos por los usuarios de su empresa durante los últimos 5 días (mostraremos el número total de correos electrónicos enviados por cada remitente externo):

Get-MessageTrackingLog -EventId "Receive" -Start (Get-Date).AddDays(-5) -ResultSize Unlimited | Where-Object {$_.Sender -like "*@gmail.com"} | Group-Object Sender | Sort-Object Count -Descending | Format-Table *

Get-MessageTrackingLog con agrupación, clasificación y conteo por remitente

Para buscar correos electrónicos almacenados en los buzones de correo de los usuarios de Exchange, use el cmdlet Search-Mailbox.

Office 365 le permite realizar una búsqueda de registros de seguimiento de mensajes desde el Centro de administración de Exchange (EAC). Ve a la Flujo de correo -> Rastreo de mensajes. Rellene los campos de búsqueda. Esta es en realidad la interfaz web para el cmdlet Get-MessageTrackingLog, que permite al usuario generar un comando de seguimiento de PowerShell en un formulario web simple.

Office 365 Flujo de correo -> Seguimiento de mensajes

Los métodos considerados anteriormente lo ayudarán a obtener estadísticas sobre los mensajes enviados y recibidos en su sistema Exchange y diagnosticar diferentes problemas de transporte de correo electrónico.

Artículos Interesantes