A postagem abaixo foi promovida a partir do rascunho devido a um compromisso recente do cliente. Os administradores do Exchange estão cada vez mais acostumados com as ferramentas de acompanhamento de mensagens que foram enviadas com os builds anteriores do Exchange. Isto é completamente compreensível uma vez que eles são obrigados a investigar e resolver inúmeros problemas. Pode haver uma questão de se Steve na contabilidade recebeu esse e-mail na semana passada, ou porque as mensagens de Anne em vendas estão presas em uma fila?
Nos últimos 10 anos, aproximadamente, a ferramenta de rastreamento de mensagens do Exchange tem sido a arma de escolha de muitos administradores quando se trata de solucionar tais problemas. No entanto, isso não existe no Exchange 2013 ou 2016. Em vez disso, podemos usar relatórios de entrega ou PowerShell para consultar os logs de rastreamento de mensagens.
Scroll to the bottom para uma dica profissional sobre como adicionar uma GUI de volta ao rastreamento de mensagens.
Na forma mais simples, podemos usar o Get-MessageTrackingLog para pesquisar e retornar todos os hits a partir do servidor especificado. Em qualquer grande organização, a rolagem através dos screeds de saída é uma perda de tempo e não é eficiente. Precisamos de aplicar alguma lógica de filtragem.
Procurar por remetente
Get-MessageTrackingLog -Sender [email protected]
Procurar por destinatário
Get-MessageTrackingLog -Recipient [email protected]
Procurar por domínio destinatário
Nota que também é possível usar um wildcard na busca para incluir um domínio inteiro:
Get-MessageTrackingLog -Recipients *@hotmail.co
Alternativamente podemos usar uma declaração como a que se segue, embora isto normalmente seja mais lento
Get-MessageTrackingLog | Where {$_.Recipients -like "*tailspintoys.com"}
Procurar por Assunto
Get-MessageTrackingLog -MessageSubject "I Am Zorg"
Procurar por MessageID
Get-MessageTrackingLog -MessageId <MessageID>
Procurar por Janela de Tempo
Get-MessageTrackingLog -ResultSize Unlimited -Start "3/28/2015 8:00AM" -End "3/28/2015 5:00PM" -EventId "Fail" -Sender "mailto:[email protected]"
Procurar Por mensagem EventID
Get-MessageTrackingLog -ResultSize Unlimited -EventId "Fail"
Multiple Example – Time Window & EventID & Sender
Os vários elementos podem ser combinados para filtrar resultados indesejados.
Get-MessageTrackingLog -ResultSize Unlimited -Start "3/28/2015 8:00AM" -End "3/28/2015 5:00PM" -EventId "Fail" -Sender "[email protected]"
Recuperar todas as mensagens na última hora
Nota que AddHours é usado com um valor negativo para mover a janela de pesquisa para trás uma hora.
Get-MessageTrackingLog -Sender [email protected] -Server (Get-Date).AddHours(-1)
Exportar para CSV
Se você for um cinturão negro do Excel, é possível exportar os resultados da pesquisa para um arquivo CSV para análise posterior no Excel.
Get-MessageTrackingLog | Export-CSV –path C:\temp\tracking.csv –NoTypeInformation
Get-MessageTrackingLog | select @{Name="RecipientsXX";Expression={$_.Recipients}}
Tempo de execução das medidas
Measure-Command {Get-TransportServer | Get-MessageTrackingLog -MessageSubject "zorg" -ResultSize unlimited}
Procurar GUI para Exchange 2013/2016
Como observado no início deste post, não há mais uma ferramenta de exploração de log de rastreamento de mensagens no Exchange 2013 ou 2016. O que podemos fazer é criar o comando de pesquisa desejado usando um dos exemplos acima e depois usar a funcionalidade nativa PowerShell para exibir os resultados em uma UI.
Este é o Out-GridView que tem estado presente no PowerShell por muitos, muitos, muitos anos.
Como um exemplo simples:
Get-MessageTrackingLog | Out-GridView