/
/

Como gerar relatórios de rastreamento de mensagens do Microsoft 365 com PowerShell

por Team Ninja
How to Get Microsoft 365 Message Tracing Reports Using PowerShell blog banner image

Resumo instantâneo

Esta postagem do blog NinjaOne oferece uma lista abrangente de comandos CMD básicos e um mergulho profundo nos comandos do Windows, com +70 comandos CMD essenciais para usuários iniciantes e avançados. Explicamos sobre comandos práticos de prompt de comando para gerenciamento de arquivos, navegação em diretórios, solução de problemas de rede, operações de disco e automação, tudo com exemplos reais para maximizar a produtividade. Seja para aprender comandos básicos CMD ou dominar ferramentas avançadas de CLI do Windows, este guia ajuda você a usar o prompt de comando com mais eficiência.

Pontos principais

  • Use o PowerShell no Microsoft 365 para gerar rastreamentos de mensagens do Exchange Online com status de entrega, atrasos e falhas.
  • Execute Get-MessageTraceV2 para rastreamentos ao vivo dos últimos 90 dias, com até 10 dias de dados por consulta, e use Get-MessageTraceDetailV2 para diagnósticos de entrega salto a salto.
  • Execute Start-HistoricalSearch para coletas de longo alcance ou em grande escala e crie exportações CSV prontas para auditoria cobrindo até 90 dias de atividade de mensagens.
  • Normalize e enriqueça os dados de rastreamento com campos calculados (por exemplo, TimeSpanMinutes, DeliveryOutcome) para simplificar análises e verificações de conformidade.
  • Automatize o rastreamento com autenticação segura somente de aplicativo, trabalhos agendados do PowerShell e tratamento de erros robusto para execução não interativa.
  • Armazene e documente as saídas do rastreamento de forma sistemática para apoiar auditorias, investigações e a visibilidade contínua da governança de e-mails.

A ferramenta de rastreamento de mensagens do Microsoft 365 permite que provedores de serviços gerenciados (MSPs) e administradores de TI investiguem e monitorem a entrega de e-mails no Exchange Online com precisão e de forma repetível. Combinado com a automação via PowerShell e diversos cmdlets, o rastreamento ajuda as equipes a responder rapidamente dúvidas sobre entrega, gerar relatórios prontos para auditoria e escalar investigações entre tenants. Continue a leitura para conhecer um fluxo de trabalho estruturado que garante visibilidade operacional e preparo para conformidade.

Como gerar relatórios de rastreamento de mensagens do Microsoft 365 com PowerShell

O rastreamento de mensagens no Microsoft 365 mostra como um e-mail trafegou pelo Exchange Online e por que foi entregue, adiado ou falhou. Isso o torna essencial para a visibilidade e a governança do fluxo de e-mails. O PowerShell oferece vários métodos flexíveis para gerar esses relatórios e permite capturar dados recentes e históricos com precisão. Veja a seguir as etapas que descrevem quais cmdlets usar, como moldar e enriquecer os resultados e como aproveitar os relatórios em cada fase.

📌 Pré-requisitos:

  • Módulo do Exchange Online PowerShell em uma estação de trabalho administrativa
  • Permissões para executar rastreamento de mensagens e pesquisa histórica no tenant
  • Armazenamento seguro de credenciais e um diretório de saída para as exportações
  • Registro de aplicativo no Microsoft Entra (opcional) para automação somente de aplicativo

Fase 1: coletar dados

O primeiro passo é reunir os dados para toda a análise de rastreamento de mensagens usando cmdlets do PowerShell. Há duas opções, conforme o intervalo de tempo e as necessidades de relatório.

Opção 1: executar rastreamentos ao vivo para mensagens recentes

Use um rastreamento ao vivo para verificar rapidamente o que aconteceu com uma mensagem em um período recente (apenas dentro dos últimos 90 dias, com até 10 dias de dados por consulta) no Microsoft 365. Assim, dá para saber se a mensagem foi entregue, atrasou ou falhou e ver o caminho exato que ela percorreu pelo Exchange Online, sem precisar de grandes exportações.

  1. Em uma estação de trabalho gerenciada, conecte-se ao Exchange Online abrindo uma sessão segura com uma conta de administrador que tenha permissão de rastreamento de mensagens e confirme que está conectado ao tenant correto antes de executar qualquer rastreamento.
  2. Use Get-MessageTraceV2 com filtros limitados por tempo. Defina uma janela de tempo recente e aplique filtros precisos (por exemplo, remetente, destinatário, palavra-chave do assunto ou status) para retornar apenas resultados relevantes.
  3. Para qualquer mensagem que exija investigação adicional, obtenha os detalhes de cada salto (por exemplo, regras de transporte aplicadas, saltos de conector, vereditos de antispam/antimalware e atrasos) que explicam o resultado da entrega usando Get-MessageTraceDetailV2.

💡 Observação: a Microsoft descontinuou os cmdlets Get-MessageTrace e Get-MessageTraceDetail, substituídos por Get-MessageTraceV2 e Get-MessageTraceDetailV2, respectivamente.

  1. Salve as saídas em CSV (e, se quiser, em JSON) e inclua o identificador do tenant, os horários de início/fim e os parâmetros de filtro no nome do arquivo ou nos metadados.

Exemplo:

$start = (Get-Date).AddHours(-24)
$end   = Get-Date
Get-MessageTraceV2 -StartDate $start -EndDate $end -Status Failed |
Select-Object Received, SenderAddress, RecipientAddress, Subject, Status |
Export-Csv .\message-trace.csv -NoTypeInformation

Opção 2: usar a pesquisa histórica para intervalos maiores

Se precisar analisar o fluxo de e-mails em um intervalo maior que 10 dias em uma única solicitação ou reunir grandes volumes de dados para auditorias, use a pesquisa histórica. Ela gera relatórios CSV para download das mensagens dentro da janela de retenção de 90 dias, sem a restrição de 10 dias por consulta, com limite de 100.000 resultados por relatório. Esses relatórios são ideais para revisões de conformidade e relatórios mensais de governança.

  1. Use Start-HistoricalSearch para solicitar um relatório de um intervalo de datas definido (por exemplo, de alguns dias a semanas) e iniciar um trabalho assíncrono processado pelo Microsoft 365.
  2. Acompanhe o status da pesquisa até o CSV ficar pronto, baixe os dados e armazene-os com metadados, incluindo horário de início, intervalo de datas, solicitante e título do relatório, para manter a consistência da auditoria.
  3. Agende pesquisas históricas automáticas semanais ou mensais para os relatórios de conformidade.

Exemplo:
Start-HistoricalSearch -ReportTitle "Failed mail, last 30 days" -ReportType MessageTrace `
-StartDate (Get-Date).AddDays(-30) -EndDate (Get-Date).AddDays(-1) `
-DeliveryStatus Failed -NotifyAddress [email protected]

Fase 2: escolher a interface certa para revisão e validação

Também é importante escolher a interface certa para revisar os resultados do rastreamento de mensagens da Microsoft e garantir eficiência e exatidão. O PowerShell traz automação e mais controle, enquanto os portais do Microsoft 365 oferecem acesso visual rápido e manual.

  • Use o portal do Microsoft Defender e o centro de administração do Exchange quando precisar:
    • Verificar mensagens específicas
    • Confirmar resultados do PowerShell
    • Ver o status de entrega
    • Filtrar ações
    • Conferir detalhes da linha do tempo sem executar comandos.
  • Use o PowerShell como método oficial para exportar, filtrar e registrar rastreamentos. Ele garante:
    • Consistência entre investigações
    • Automação repetível para governança
    • Dados completos para a documentação de conformidade

Fase 3: exportar, normalizar e enriquecer

Em seguida, prepare os dados de rastreamento para análise e conformidade. As saídas brutas do PowerShell são úteis, mas vale normalizá-las e enriquecê-las para facilitar a interpretação dos relatórios e sua defesa em auditorias.

  1. Salve os resultados do rastreamento em CSV para facilitar revisão, ordenação e compartilhamento nas equipes de operações. Também dá para usar exportações em JSON como entrada flexível para painéis, pipelines de dados ou sistemas SIEM.
  2. Aumente a utilidade dos dados criando novos campos (por exemplo, TimeSpanMinutes e DeliveryOutcome) para identificar tendências e problemas de desempenho rapidamente.
  3. Documente sempre quais parâmetros e filtros foram aplicados, qual versão do script gerou o relatório e quantos registros retornaram. Isso cria uma trilha de auditoria mais transparente para validação e reprodução posteriores.

Fase 4: automatizar com autenticação segura

Ao coletar evidências em vários tenants, automatizar o rastreamento de mensagens ajuda a garantir consistência e auditabilidade. Concentre-se em autenticação segura e não interativa, execução resiliente e registro claro das execuções para que os resultados sejam confiáveis e repetíveis.

  1. Em trabalhos não interativos, use autenticação somente de aplicativo baseada em certificado para evitar senhas de usuário armazenadas e solicitações de MFA, e atribua apenas as funções mínimas necessárias no Exchange.
  2. Faça o rodízio dos certificados, restrinja o acesso à chave privada e monitore a expiração para manter as agendas em funcionamento com segurança.
  3. Implemente lógica de nova tentativa para condições transitórias conhecidas (por exemplo, instabilidade de rede, limitação do serviço) e evite que tarefas longas falhem por causa de uma única falha pontual. Inclua comportamento de pular/continuar de forma controlada e mensagens de erro claras para facilitar a análise posterior.
  4. Agende rastreamentos ao vivo diários para insights rápidos e pesquisas históricas semanais para uma cobertura mais ampla. Depois, registre horários de início/fim, fuso horário, parâmetros, contagem de itens e falhas em um local central. Use nomes de arquivo consistentes e crie alertas para anomalias (por exemplo, zero resultados, altas taxas de falha) para identificar e resolver problemas de forma proativa.

Fase 5: operacionalizar para investigações e auditorias

Por fim, é preciso operacionalizar o rastreamento de mensagens para que cada execução seja útil em investigações, auditorias e governança. Padronize como os resultados são armazenados, referenciados e correlacionados para construir um registro consistente dos controles de fluxo de e-mails e das ações de resposta a incidentes.

  1. Anexe as exportações do rastreamento diretamente a tickets de incidente, linhas do tempo de casos ou sistemas de documentação para criar uma cadeia de evidências clara, que mostre quando as mensagens foram enviadas, que caminho percorreram e por que os resultados de entrega ocorreram.
  2. Mantenha amostras representativas de rastreamento todos os meses para verificar se os controles de segurança, filtragem e roteamento funcionam como esperado. Essas amostras arquivadas também servem como prova mensurável da saúde operacional contínua e da aplicação das políticas.
  3. Compare anomalias do rastreamento com mudanças em funções administrativas, licenciamento de usuários ou regras de caixa de correio para detectar desvios de configuração, uso indevido de privilégios ou exceções de política que expliquem comportamentos incomuns no fluxo de e-mails ou lacunas de conformidade.

Tabela-resumo de boas práticas

Veja abaixo uma tabela de boas práticas que mantêm o rastreamento de mensagens do Microsoft 365 preciso e seguro para fins de auditoria.

PráticaFinalidadeValor entregue
Cmdlets V2 de rastreamento ao vivoInterface atual para e-mails recentesRespostas mais rápidas com saída consistente
Pesquisa históricaGerar relatórios CSV para conjuntos de dados maiores dentro da janela de retenção de 90 diasPermite relatórios assíncronos em intervalos de datas mais amplos, respeitados os limites de resultados
Automação somente de aplicativoAgendamentos seguros e não interativosExecuções autônomas confiáveis e em conformidade
Exportações normalizadasRelatórios padronizados e estruturadosIntegração com painéis e cruzamento de dados mais simples
Evidências prontas para auditoriaExecuções registradas e contagem de registrosRastreabilidade para investigações e revisões

Por que gerar relatórios de rastreamento de mensagens com PowerShell no Microsoft 365

Gerar relatórios de rastreamento de mensagens do Microsoft 365 com PowerShell é um jeito mais rápido e repetível de analisar o fluxo de e-mails entre tenants. Diferentemente da interface gráfica do centro de administração do Exchange, o PowerShell traz automação e filtros mais precisos, ideais para investigações e relatórios contínuos de conformidade. Entre os principais benefícios, está a possibilidade de:

  • Agendar rastreamentos e exportações sem intervenção manual.
  • Lidar com grandes conjuntos de dados e intervalos longos de datas com eficiência.
  • Aplicar filtros exatos de remetente, destinatário ou status.
  • Registrar parâmetros, carimbos de data/hora e resultados para rastreabilidade.
  • Alimentar ferramentas de monitoramento ou painéis de governança com os relatórios.

Exemplo de ponto de contato de automação

Os MSPs podem usar automação para incorporar o rastreamento de mensagens às operações diárias. Isso garante coleta consistente de evidências e insights no tempo certo, sem esforço manual. Veja um exemplo de fluxo de trabalho para um trabalho agendado do PowerShell que simplifica rastreamento, relatórios e documentação:

  • Trabalho diário de rastreamento ao vivo: executa Get-MessageTraceV2 a cada 24 horas para capturar a atividade de entrega recente.
  • Enriquecimento de detalhes: usa Get-MessageTraceDetailV2 para acrescentar os dados salto a salto de cada mensagem.
  • Exportação estruturada: grava os resultados em um arquivo CSV identificado com carimbos de data/hora e identificadores de tenant para facilitar o acompanhamento.
  • Exportação histórica semanal: executa Start-HistoricalSearch uma vez por semana para gerar um conjunto de dados de 10 dias para análise mais ampla.
  • Registro de execuções: anota horários de início e fim, contagem de itens, duração e parâmetros de filtro para fins de auditoria.
  • Relatórios automáticos: publica um resumo conciso dos resultados no espaço de documentação ou monitoramento para visibilidade rápida.

Integração com NinjaOne

NinjaOne pode ser integrado ao rastreamento de mensagens do Microsoft 365 para ajudar MSPs a automatizar tarefas dentro da própria plataforma de gerenciamento. Isso simplifica os fluxos de conformidade e reforça a visibilidade.

Tarefa de integraçãoFinalidadeValor entregue
Implantar e agendar scriptsAutomatizar trabalhos de rastreamento de mensagens em PowerShell pelo console do NinjaOneGarante geração de relatórios consistente e autônoma para todos os clientes
Armazenar credenciais com segurançaManter credenciais de administrador ou de aplicativo criptografadas no cofre de credenciais do NinjaOneProtege dados de acesso sensíveis e apoia a conformidade
Anexar exportações e logsEnviar CSVs e logs de execução para a documentação do clienteCentraliza as evidências para investigações e auditorias
Resumir métricas-chaveMostrar totais diários e status de mensagens relevantes em painéis ou relatóriosDá uma visão operacional rápida e apoia as discussões de QBR

Conformidade confiável com rastreamento de mensagens via PowerShell

Administradores e MSPs ganham velocidade e precisão nas investigações de entrega de e-mails ao gerar relatórios de rastreamento de mensagens do Microsoft 365 com PowerShell. O recurso oferece controle preciso, automação e relatórios mais consistentes, o que facilita investigar problemas, manter a conformidade e documentar a saúde da entrega. Ao unir automação às etapas descritas neste artigo, cada execução de rastreamento passa a contribuir para transparência e responsabilização.

Temas relacionados:

FAQs

O Microsoft 365 mantém os dados de rastreamento de mensagens do Exchange Online por 90 dias. Os rastreamentos ao vivo consultam qualquer período de 10 dias dentro dessa janela, enquanto as pesquisas históricas cobrem mensagens de até 90 dias em relatórios CSV para download, respeitados os limites de resultados. Para guardar os dados além de 90 dias, exporte-os e armazene-os antes que expirem.

Get-MessageTraceV2 retorna os resultados do rastreamento direto no PowerShell referentes aos últimos 90 dias, com intervalo máximo de 10 dias por consulta e até 5.000 resultados por chamada. Start-HistoricalSearch roda de forma assíncrona e gera um relatório CSV para download de mensagens de até 90 dias, sem a restrição de 10 dias por consulta, mas com limite de 100.000 resultados por relatório.

O rastreamento ajuda a identificar os caminhos de entrega e as ações de filtragem de segurança, o que pode revelar se uma mensagem foi marcada como spam, falsificada ou phishing. Ainda assim, análises de segurança mais profundas devem ser combinadas com o Defender para Office 365 ou com ferramentas de investigação de ameaças.

O PowerShell permite registro consistente, carimbo de data/hora e preservação de evidências durante o rastreamento de mensagens. Assim, cada relatório pode ser reproduzido, verificado e anexado à documentação de auditoria nas revisões de conformidade.

Os administradores costumam encontrar problemas de permissão, limites de throttling ou sessões expiradas. Dá para evitar essas falhas usando autenticação somente de aplicativo, aplicando lógica de nova tentativa para erros transitórios e configurando corretamente o acesso baseado em funções.

O recomendado é rastreamento ao vivo diário e pesquisas históricas semanais ou mensais para monitoramento contínuo. Esse equilíbrio garante a detecção rápida de problemas de entrega e a coleta consistente de evidências para revisões operacionais e de conformidade.

Recomendados para você

Pronto para simplificar as partes mais difíceis da TI?