Get-MessageTrace Track de mensagens no Exchange Online
Get-MessageTrace Track de mensagens no Exchange Online
Ola Friends, bem vindo a mais um post neste humilde blog.
Gostaria de compartilhar com vocês uma dica de comando em powershell para realizar track de mensagens no Exchange Online.
Com o comando Get-MessageTrace podemos consultar e exportar de maneira rápida e eficiente informações de log armazenadas no Exchange Online de até 30 dias.
Este post tem o intuito de demonstrar algumas formas de utilizar o comando Get-MessageTrace utilizando exemplos do dia a dia.
Exemplo 1
Verificando mensagens enviadas por um determinado usuário nas últimas 6 horas
Get-MessageTrace -SenderAddress e-mail@friendsti.com.br -StartDate ((get-date).AddHours(-6)) -EndDate (get-date)
O padrão de tempo ao utilizar apenas Get-MessageTrace são as últimas 48 horas porem você pode definir intervalo de tempo de até 30 dias antes, no exemplo acima utilizei Get-date e especificando as últimas 6 horas, no decorrer deste post utilizarei datas e horários diferentes para você ir se familiarizando.
Ainda falando sobre o exemplo 1 você vai perceber que o resultado saiu com formato em tabela e não é possível verificar todas informações, basta adicionar “Format-List” no fim do comando
Get-MessageTrace -SenderAddress e-mail@friendsti.com.br -StartDate ((get-date).AddHours(-6)) -EndDate (get-date) | Format-List
Exemplo 2
As vezes precisamos realizar o track de mensagens enviadas para um determinado endereço.
Get-MessageTrace -RecipientAddress e-mail@friendsti.com.br -StartDate ((get-date).AddHours(-6)) -EndDate (get-date)
Veja que o resultado vai trazer todos os remetentes que enviaram mensagens para este destinatário nas últimas 6 horas.
Exemplo 3
Neste exemplo vamos selecionar apenas o que precisamos de atributo no resultado
Get-MessageTrace -SenderAddress e-mail@friendsti.com.br -StartDate ((get-date).AddHours(-3)) -EndDate (get-date) | select-object MessageTraceID, MessageID, Received, RecipientAddress, Subject, Status
Você pode adicionar ou remover atributos a serem exibidos, fica ao seu critério.
O atributo Message Trace ID é separado porem quando você adicionar no comando coloque tudo junto.
Exemplo 4
O comando Get-MessageTrace tem vários parâmetros, no exemplo a seguir vamos filtrar apenas as mensagens que falharam a entrega
Get-MessageTrace -SenderAddress e-mail@friendsti.com.br -StartDate ((get-date).AddHours(-3)) -EndDate (get-date) -Status failed
Veja os status de mensagens que você consegue verificar.
None: a mensagem não tem status de entrega porque foi rejeitada ou redirecionada para um destinatário diferente.
Failed: a entrega da mensagem foi tentada e falhou ou a mensagem foi filtrada como spam ou malware ou por regras de transporte.
Pending: a entrega de mensagens está em andamento ou foi adiada e está sendo repetida.
Delivered: A mensagem foi entregue ao seu destino.
Expanded: Não houve entrega de mensagens porque a mensagem foi endereçada a um grupo de distribuição e a associação da distribuição foi expandida.
Exemplo 5
Neste exemplo realizaremos a busca de mensagens enviadas em toda organização onde no título do e-mail contem a palavra FriendsTI
Get-MessageTrace -StartDate ((get-date).AddHours(-3)) -EndDate (get-date) | where {$_.Subject -contain ‘*FriendsTI*’}
Exemplo 6
Seu chefe quer saber quais usuários e quantos e-mails eles enviaram na última hora para o dominio @gmail.com
Get-MessageTrace -StartDate ((get-date).AddHours(-1)) -EndDate (get-date) -RecipientAddress *@gmail.com | Group-Object -Property SenderAddress | Select-object Name, Count
Exemplo 7
Em seguida o eu chefe pediu para você verificar mensagens que um colaborador enviou nos últimos 7 dias para o dominio @Gmail.com
Get-MessageTrace -SenderAddress e-mail@friendsti.com.br -StartDate ((get-date).AddDays(-7)) -EndDate (get-date) -RecipientAddress *@gmail.com
Exemplo 8
Algumas vezes o usuário excede o limite máximo de mensagens por dia, com o comando abaixo você consegue checar quantas mensagens foram enviadas por um usuário nas últimas 24 horas
Get-MessageTrace -SenderAddress e-mail@friendsti.com.br -StartDate ((get-date).AddHours(-24)) -EndDate (get-date) | Group-Object -Property SenderAddress | Select Name, Count
Para finalizar o post eu deixei por último as formas das quais você pode visualizar e armazenar os resultados de todos os comandos.
Out-GridView
Primeiro vamos falar de Out-Gridview, este comando abre uma janela de exibição de grade na qual a saída é exibida em uma tabela interativa.
Você pode usar os seguintes recursos da tabela para examinar seus dados:
Ocultar, mostrar e reordenar colunas: para ocultar, mostrar ou reordenar uma coluna, clique com o botão direito do mouse no cabeçalho de uma coluna e clique em Selecionar colunas.
Ordenar. Para classificar os dados, clique no cabeçalho de uma coluna. Clique novamente para alternar de ordem crescente para decrescente.
Filtro Rápido. Use a caixa Filtro na parte superior da janela para pesquisar o texto na tabela. Você pode pesquisar texto em uma coluna específica, pesquisar literais e pesquisar várias palavras.
Filtro de critérios. Use o menu suspenso Adicionar critérios para criar regras para filtrar os dados. Isso é muito útil para conjuntos de dados muito grandes, como logs de eventos.
Copiar e colar. Para copiar linhas de dados do Out-GridView , pressione CTRL + C (copiar). Você pode colar os dados em qualquer programa de texto ou planilha.
No exemplo abaixo foi realizado uma busca em toda organização por mensagens enviadas na última hora para o dominio @Gmail.com e o resultado abriu a janela onde você visualiza as informações.
Get-MessageTrace -StartDate ((get-date).AddHours(-1)) -EndDate (get-date) -RecipientAddress *@gmail.com | Out-GridView
Export-Csv
Já o comando Export-Csv pode ser utilizado quando temos a necessidade de armazenar as informações para avaliar no Excel por exemplo
Neste exemplo foi realizado uma busca em toda organização por mensagens enviadas na última hora para o dominio @Gmail.com e o resultado armazenado no arquivo FriendsTI.csv
Get-MessageTrace -StartDate ((get-date).AddHours(-1)) -EndDate (get-date) -RecipientAddress *@gmail.com | Export-Csv -Path C:\logs\FriendsTI.csv
Out-file
Para exportar o resultado de um comando em arquivo TXT basta adicionar Out-file
Get-MessageTrace -SenderAddress e-mail@friendsti.com.br -StartDate ((get-date).AddHours(-3)) -EndDate (get-date) -Status failed | Out-File -FilePath C:\logs\FriendsTI.txt
ConvertTo-Html
Também é possível ter a saída do comando em arquivo HTML
Get-MessageTrace -StartDate ((get-date).AddHours(-1)) -EndDate (get-date) -RecipientAddress *@gmail.com | ConvertTo-Html | Out-File -FilePath C:\logs\FriendsTI.html
Existem várias formas de utilizar o comando Get-MessageTrace, neste post foram abordadas algumas que podem ser de grande ajuda fique à vontade de deixar seu comentário com sugestões para atualizar o post.
Encontrou algo errado? Tem alguma duvida ou sugestão? Deixe seu comentário!
Veja também:
Versões do Windows 10 sem updates de segurança
Grupo de Office 365 no Telegram
Fonte
Get-MessageTrace
Get-MessageTraceDetail
Out-Gride
GET-DATE
Message Trace, the PowerShell Way
https://blogs.technet.microsoft.com/eopfieldnotes/2014/12/16/message-trace-the-powershell-way/
Using Get-MessageTrace PowerShell command for viewing and exporting information on mail sent and received | Exchange Online | Part 1#2