Get-MessageTrace Track de mensagens no Exchange Online

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

https://docs.microsoft.com/en-us/powershell/module/exchange/mail-flow/get-messagetrace?view=exchange-ps

Get-MessageTraceDetail

https://docs.microsoft.com/en-us/powershell/module/exchange/mail-flow/Get-MessageTraceDetail?view=exchange-ps

Out-Gride

https://docs.microsoft.com/pt-br/powershell/module/Microsoft.PowerShell.Utility/Out-GridView?view=powershell-5.1

GET-DATE

https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/get-date?view=powershell-6

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

https://o365info.com/using-get-messagetrace-powershell-command-for-viewing-and-exporting-information-on-mail-sent-and-received-exchange-online-part-1-2/

 

 

Jean Oliveira

Profissional de Tecnologia da Informação com 10 anos de experiência em empresas de diversos portes. Ampla experiência em administração de servidores Windows, implantação e administração de serviços AD, DNS, DHCP, DFS, GPO, WDS e WSUS. Forte atuação em suporte e administração de servidores virtuais com Hyper-V e VMWare, conhecimentos avançados em Veeam Backup e Veritas BackupExec. Experiência em suporte e administração de Citrix Virtual Apps e Desktops. Vivencia em monitoramento de redes e servidores com Zabbix e SolarWinds. Conhecimentos avançados em desenvolvimento de scripts para automação de tarefas com PowerShell. Foco na melhoria da experiência do usuário e redução de custos operacionais. Capacidade de análise de problemas em ambientes de missão crítica propondo soluções rápidas e efetivas, profissional dinâmico, comprometido, proativo e diligente.

Related Posts
Leave a reply
Captcha Click on image to update the captcha .