Partilhar via


Exchange Server: procurar registos de controlo de mensagens

O log de controle de mensagens registra a atividade da mensagem à medida que o email passa pelo pipeline de transporte nos servidores de Caixa de Correio e nos servidores de Transporte de Borda. Você pode usar o cmdlet Get-MessageTrackingLog no Shell de Gerenciamento do Exchange para procurar entradas no log de controle de mensagens usando critérios de pesquisa específicos. Por exemplo:

  • Descobrir o que aconteceu com uma mensagem que foi enviada por um usuário para um destinatário específico.

  • Descubra se uma regra de fluxo de email (também conhecida como regra de transporte) agiu em uma mensagem.

  • Descobrir se uma mensagem enviada de um remetente da Internet chegou à sua organização do Exchange.

  • Localizar todas as mensagens enviadas por um usuário específico durante um período de tempo especificado.

O que você precisa saber antes de começar?

  • Tempo estimado para conclusão: 10 minutos

  • Para executar este procedimento ou estes procedimentos, você precisa receber permissões. Para ver de que permissões você precisa, consulte o Entrada "Acompanhamento de mensagens" no tópico Permissões de fluxo de email.

  • Pesquisar nos logs de controle de mensagens exige que o serviço de Pesquisa de Log de Transporte do Microsoft Exchange esteja em execução. Se você desabilitar ou interromper esse serviço, não será possível pesquisar nos logs de controle de mensagens nem executar relatórios de entrega. No entanto, interromper esse serviço não afetará outros recursos no Exchange.

  • Os nomes dos campos mostrados nos resultados do cmdlet Get-MessageTrackingLog são similares aos nomes de campos reais encontrados nos arquivos de log de controle de mensagens. As diferenças maiores são:

    • Os traços são removidos dos nomes do campo. Por exemplo, internal-message-id é apresentado como InternalMessageId.

    • O campo de data e hora é apresentado como Timestamp.

    • O campo destinatário-endereço é apresentado como Recipients.

    • O campo sender-address é apresentado como Sender.

  • O campo date-time no log de controle de mensagens armazena informações no formato UTC (Tempo Universal Coordenado). No entanto, tem de introduzir os critérios de pesquisa de data/hora para os parâmetros Início ou Fim no formato de data/hora regional do computador que está a utilizar para efetuar a pesquisa.

  • Não é possível copiar os arquivos de log de controle de mensagens de um servidor Exchange e depois pesquisá-los usando o cmdlet Get-MessageTrackingLog. Além disso, se você salvar manualmente um arquivo de log de controle de mensagens, a mudança no carimbo de data e hora do arquivo quebra a lógica de consulta que o Exchange usa para pesquisar nos logs de controle de mensagens.

  • No Exchange 2016, o cmdlet Get-MessageTrackingLog consegue pesquisar os registos de controlo de mensagens nos servidores da Caixa de Correio do Exchange 2013 e nos servidores de Transporte do Hub do Exchange 2010 no mesmo site do Active Directory. No Exchange 2019, o cmdlet Get-MessageTrackingLog consegue pesquisar os registos de controlo de mensagens nos servidores de Caixa de Correio do Exchange 2016 e Exchange 2013 no mesmo site do Active Directory.

  • Para informações sobre atalhos de teclado que possam se aplicar aos procedimentos neste tópico, confira Atalhos de teclado no Centro de Administração do Exchange.

Dica

Está com problemas? Peça ajuda nos fóruns do Exchange. Visite os fóruns em: Exchange Server, Exchange Online ou Proteção do Exchange Online.

Usar o Shell de Gerenciamento do Exchange para realizar pesquisas nos logs de controle de mensagens

Para procurar eventos específicos nas entradas do log de rastreamento de mensagens, use a seguinte sintaxe.

Get-MessageTrackingLog [-Server <ServerIdentity>] [-ResultSize <Integer> | Unlimited] [-Start <DateTime>] [-End <DateTime>] [-EventId <EventId>] [-InternalMessageId <InternalMessageId>] [-MessageId <MessageId>] [-MessageSubject <Subject>] [-Recipients <RecipientAddress1,RecipientAddress2...>] [-Reference <Reference>] [-Sender <SenderAddress>]

Para exibir as 1000 entradas de log de controle de mensagens mais recentes no servidor, execute o seguinte comando:

Get-MessageTrackingLog

Este exemplo procura nos registos de controlo de mensagens no servidor local todas as entradas de 28/03/2015 das 8:00 às 28/03/2015 17:00 para todos os eventos FAIL em que o remetente da mensagem era pat@contoso.com.

Get-MessageTrackingLog -ResultSize Unlimited -Start "3/28/2015 8:00AM" -End "3/28/2015 5:00PM" -EventId "Fail" -Sender "pat@contoso.com"

Use a sintaxe a seguir:

Get-MessageTrackingLog <SearchFilters> | <Format-Table | Format-List> [<FieldNames>] [<OutputFileOptions>]

Este exemplo pesquisa nos logs de controle de mensagens usando os seguintes critérios de pesquisa:

  • Retorna resultados para os primeiros 1.000 eventos de Send.

  • Exiba os resultados no formato de lista.

  • Apresentar apenas os nomes dos campos que começam com Send ou Recipient.

  • Escreva o resultado num novo ficheiro com o nome D:\Send Search.txt

Get-MessageTrackingLog -EventId Send | Format-List Send*,Recipient* | Set-Content -Path "D:\Send Search.txt"

Usar o Shell de Gerenciamento do Exchange para procurar, nos logs de controle de mensagens, entradas de mensagens em vários servidores

Normalmente, o valor no campo do cabeçalho MessageID: permanece constante enquanto a mensagem é transmitida por toda a organização do Exchange. Essa propriedade é denominada InternetMessageId nos utilitários de visualização de filas e MessageId nos utilitários de visualização de log de controle de mensagens. Depois de ter determinado o valor MessageID: de uma mensagem específica, você pode procurar informações sobre essa mensagem nos logs de controle de mensagens em cada servidor de Caixa de Correio na organização do Exchange.

Para procurar todas as entradas de log de controle de mensagens para uma mensagem específica em todos os servidores de Caixa de Correio e nos servidores Transporte Hub do Exchange 2010, use a seguinte sintaxe.

$Servers = Get-ExchangeServer;  $Servers | where {$_.isHubTransportServer -eq $true -or $_.isMailboxServer -eq $true} | Get-MessageTrackingLog -MessageId <MessageID>  | Select-Object <CommaSeparatedFieldNames>  | Sort-Object -Property <FieldName>

Este exemplo realiza a pesquisa nos logs de controle de mensagens em todos os servidores de Caixa de Correio do Exchange 2010 usando os seguintes critérios de pesquisa:

  • Localize todas as entradas relacionadas com uma mensagem que tenha um MessageID: valor de <ba18339e-8151-4ff3-aeea-87ccf5fc9796@mailbox01.contoso.com>. Tenha em atenção que pode omitir os carateres de parênteses angulares (<>). Se você não o fizer, será preciso colocar todo o valor MessageID: entre aspas.

  • Para cada entrada, exiba os campos date-time, server-hostname, client-hostname, source, event-id e recipient-address.

  • Classifique os resultados pelo campo date-time.

$Servers = Get-ExchangeServer; $Servers | where {$_.isHubTransportServer -eq $true -or $_.isMailboxServer -eq $true} | Get-MessageTrackingLog -MessageId ba18339e-8151-4ff3-aeea-87ccf5fc9796@mailbox01.contoso.com | Select-Object Timestamp,ServerHostname,ClientHostname,Source,EventId,Recipients | Sort-Object -Property Timestamp

Use o EAC para pesquisar os logs de controle de mensagens

Você pode usar os Relatórios de Entrega do recurso de administradores no Centro de Administração do Centro de administração do Exchange (EAC) para procurar, nos logs de controle de mensagens, informações sobre as mensagens enviadas ou recebidas por uma caixa de correio específica em sua organização. Veja mais informações em Acompanhar mensagens com notificações de entrega.