/
/

Zo haalt u Microsoft 365 message trace-rapporten op met PowerShell

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

Directe samenvatting

Deze blogpost van NinjaOne biedt een uitgebreide basislijst met CMD-commands en een deep dive duik in Windows-commands met meer dan 70 essentiële cmd-commands voor zowel beginners als gevorderden. Het legt praktische opdrachtpromptcommando’s uit voor file management, directory navigation, network troubleshooting, disk operations en automatisering met echte voorbeelden om de productiviteit te verbeteren. Of u nu fundamentele cmd-commands leert of geavanceerde Windows CLI-tools onder de knie krijgt, deze gids helpt u de Command Prompt effectiever te gebruiken.

Belangrijkste punten

  • Gebruik PowerShell in Microsoft 365 om Exchange Online message traces te genereren voor bezorgstatus, vertragingen en fouten.
  • Voer Get-MessageTraceV2 uit voor live traces van de afgelopen 90 dagen, met maximaal 10 dagen aan gegevens per query, en gebruik Get-MessageTraceDetailV2 voor bezorgdiagnostiek op hopniveau.
  • Voer Start-HistoricalSearch uit voor gegevensverzameling over lange periodes of op grote schaal en maak auditklare CSV-exports die tot 90 dagen aan berichtactiviteit beslaan.
  • Normaliseer en verrijk tracegegevens met berekende velden (bijvoorbeeld TimeSpanMinutes en DeliveryOutcome) om analyse en compliancecontroles te vereenvoudigen.
  • Automatiseer message trace met veilige app-only authenticatie, geplande PowerShell-taken en robuuste foutafhandeling voor niet-interactieve uitvoering.
  • Sla tracegegevens systematisch op en documenteer ze om audits, onderzoeken en doorlopend inzicht in e-mailgovernance te ondersteunen.

Met de tool Microsoft 365 message trace kunnen managed service providers (MSP’s) en IT-beheerders de e-mailbezorging binnen Exchange Online nauwkeurig en herhaalbaar onderzoeken en monitoren. In combinatie met PowerShell-automatisering en diverse cmdlets kunnen teams bezorgingsvragen snel beantwoorden, auditklare rapporten genereren en hun onderzoeken over meerdere tenants opschalen. Lees verder voor een gestructureerde workflow die zorgt voor operationeel inzicht en compliance-gereedheid.

Zo genereert u met PowerShell rapporten voor Microsoft 365 message trace

Message trace in Microsoft 365 laat zien hoe een e-mail door Exchange Online is gegaan en waarom die is bezorgd, uitgesteld of mislukt. Daarmee is het een onmisbare tool voor inzicht in de mailstroom en voor governance. PowerShell biedt verschillende flexibele methoden om deze rapporten te genereren, waarmee beheerders zowel recente als historische gegevens nauwkeurig kunnen vastleggen. Hieronder staan de stappen die beschrijven welke cmdlets u kunt gebruiken, hoe u resultaten vormgeeft en verrijkt en hoe u rapporten in de verschillende fasen effectief inzet.

📌 Vereisten:

  • Exchange Online PowerShell-module op een beheerderswerkplek
  • Rechten om message trace en historische zoekopdrachten in de tenant uit te voeren
  • Veilige opslag van referenties en een uitvoermap voor exports
  • Optioneel een Microsoft Entra-appregistratie voor app-only automatisering

Fase 1: gegevens verzamelen

De eerste stap is het verzamelen van gegevens voor alle message trace-analyses met PowerShell-cmdlets. U hebt twee opties, afhankelijk van uw tijdsbereik en rapportagebehoefte.

Optie 1: live traces uitvoeren voor recente berichten

Met een live trace controleert u snel wat er met een bericht uit een recente periode is gebeurd (alleen binnen de afgelopen 90 dagen, met maximaal 10 dagen aan gegevens per query) in Microsoft 365. Zo stelt u vast of een bericht succesvol is bezorgd, vertraagd is of is mislukt en ziet u het exacte pad dat het door Exchange Online heeft afgelegd, zonder dat grote exports nodig zijn.

  1. Maak op een beheerde werkplek verbinding met Exchange Online door een beveiligde sessie op te zetten met een beheerdersaccount met message trace-rechten en controleer of u met de juiste tenant bent verbonden voordat u traces uitvoert.
  2. Gebruik Get-MessageTraceV2 met filters die aan een tijdsbereik zijn gebonden. Definieer een recent tijdvenster en pas nauwkeurige filters toe (bijvoorbeeld afzender, ontvanger, trefwoord in het onderwerp of status) zodat alleen relevante resultaten worden teruggegeven.
  3. Haal voor elk bericht dat verder onderzoek vereist de hopdetails op (bijvoorbeeld toegepaste transportregels, connectorhops, anti-spam- en antimalwareoordelen en vertragingen) die het bezorgingsresultaat verklaren met Get-MessageTraceDetailV2.

💡 Let op: Microsoft heeft de cmdlets Get-MessageTrace en Get-MessageTraceDetail uitgefaseerd en vervangen door respectievelijk Get-MessageTraceV2 en Get-MessageTraceDetailV2.

  1. Sla de uitvoer op als CSV (en eventueel JSON) en neem de tenant-id, de start- en eindtijd en de filterparameters op in de bestandsnaam of de metadata.

Voorbeeld:

$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

Optie 2: historische zoekopdrachten voor langere periodes

Moet u de mailstroom over een periode van meer dan 10 dagen in één aanvraag analyseren of grote datasets verzamelen voor audits? Gebruik dan historische zoekopdrachten. Die genereren downloadbare CSV-rapporten voor berichten binnen de bewaartermijn van 90 dagen, zonder de beperking van 10 dagen per query, met een limiet van 100.000 resultaten per rapport. Deze rapporten zijn ideaal voor compliancebeoordelingen en maandelijkse governancerapportage.

  1. Gebruik Start-HistoricalSearch om een rapport aan te vragen voor een vastgesteld datumbereik (bijvoorbeeld enkele dagen tot weken) en start zo een asynchrone taak die door Microsoft 365 wordt afgehandeld.
  2. Volg de status van de zoekopdracht tot het CSV-bestand klaar is, download vervolgens de gegevens en sla ze op met metadata zoals de starttijd, het datumbereik, de aanvrager en de rapporttitel, zodat de audit consistent blijft.
  3. Plan automatische wekelijkse of maandelijkse historische zoekopdrachten voor compliancerapportage.

Voorbeeld:
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: kies de juiste omgeving voor review en validatie

Het is ook belangrijk om de juiste interface te kiezen voor het beoordelen van de resultaten van Microsoft message trace, zodat u efficiënt en nauwkeurig werkt. PowerShell biedt automatisering en meer controle, terwijl de Microsoft 365-portalen snelle, handmatige visuele toegang geven.

  • Gebruik de Microsoft Defender-portal en het Exchange-beheercentrum wanneer u:
    • Specifieke berichten wilt verifiëren
    • PowerShell-resultaten wilt bevestigen
    • De bezorgstatus wilt zien
    • Acties wilt filteren
    • Tijdlijndetails wilt controleren zonder commando’s uit te voeren.
  • Gebruik PowerShell als de gezaghebbende methode voor het exporteren, filteren en loggen van traces. Dat zorgt voor:
    • Consistentie tussen onderzoeken
    • Herhaalbare automatisering voor governance
    • Volledige gegevens voor compliancedocumentatie

Fase 3: exporteren, normaliseren en verrijken

Bereid vervolgens de message trace-gegevens voor op analyse en compliance. Ruwe PowerShell-uitvoer is bruikbaar, maar u wilt die normaliseren en verrijken zodat rapporten makkelijker te interpreteren en tijdens audits te onderbouwen zijn.

  1. Sla traceresultaten op in CSV-formaat zodat operationele teams ze eenvoudig kunnen bekijken, sorteren en delen. U kunt ook JSON-exports gebruiken als flexibele invoer voor dashboards, datapijplijnen of SIEM-systemen.
  2. Maak de gegevens bruikbaarder door nieuwe velden af te leiden (bijvoorbeeld TimeSpanMinutes en DeliveryOutcome) waarmee u trends en prestatieproblemen snel opmerkt.
  3. Documenteer altijd welke parameters en filters zijn toegepast, welke scriptversie het rapport heeft gegenereerd en hoeveel records zijn teruggegeven. Dat levert een transparanter auditspoor op voor latere validatie en reproductie.

Fase 4: automatiseren met veilige authenticatie

Wanneer u bewijsmateriaal verzamelt over veel tenants, draagt het automatiseren van message trace bij aan consistentie en controleerbaarheid. Richt u op veilige, niet-interactieve authenticatie, robuuste uitvoering en heldere logging van de runs zodat de resultaten betrouwbaar en herhaalbaar zijn.

  1. Gebruik voor niet-interactieve taken app-only authenticatie op basis van certificaten om opgeslagen gebruikerswachtwoorden en MFA-prompts te vermijden en wijs alleen de minimaal benodigde Exchange-rollen toe.
  2. Roteer certificaten, beperk de toegang tot privésleutels en bewaak de vervaldatum zodat geplande taken veilig blijven draaien.
  3. Implementeer retry-logica voor bekende tijdelijke situaties (bijvoorbeeld netwerkstoringen of throttling van de service) zodat langlopende taken niet door één hapering mislukken. Zorg voor nette skip- of continue-afhandeling en duidelijke foutmeldingen om analyse achteraf te vergemakkelijken.
  4. Plan dagelijkse live traces voor snel inzicht en wekelijkse historische zoekopdrachten voor bredere dekking en log vervolgens start- en eindtijden, tijdzone, parameters, aantallen items en fouten op een centrale locatie. Gebruik consistente bestandsnamen en stel waarschuwingen in bij afwijkingen (bijvoorbeeld nul resultaten of een hoog foutpercentage) zodat u problemen proactief signaleert en aanpakt.

Fase 5: inzetten voor onderzoeken en audits

Tot slot moet u message trace operationeel maken zodat individuele runs bruikbaar zijn voor onderzoeken, audits en governance. Standaardiseer hoe resultaten worden opgeslagen, aangehaald en gecorreleerd om een goed onderbouwd dossier op te bouwen van de controles op de mailstroom en de acties bij incidentrespons.

  1. Koppel message trace-exports rechtstreeks aan incidenttickets, casustijdlijnen of documentatiesystemen om een duidelijke bewijsketen te creëren die laat zien wanneer berichten zijn verzonden, welk pad ze hebben afgelegd en waarom de bezorging zo is verlopen.
  2. Bewaar elke maand representatieve tracevoorbeelden om te verifiëren dat de beveiligings-, filter- en routeringscontroles werken zoals verwacht. Deze gearchiveerde voorbeelden leveren ook meetbaar bewijs van de doorlopende operationele gezondheid en beleidshandhaving.
  3. Vergelijk afwijkingen in message trace met wijzigingen in beheerdersrollen, gebruikerslicenties of postvakregels om configuratiedrift, misbruik van rechten of beleidsuitzonderingen te detecteren die ongebruikelijk mailgedrag of compliancehiaten kunnen verklaren.

Overzichtstabel met beste praktijken

Hieronder vindt u een tabel met beste praktijken die ervoor zorgen dat Microsoft 365 message trace nauwkeurig en veilig blijft voor auditdoeleinden.

PraktijkDoelOpgeleverde waarde
V2-cmdlets voor live tracesHuidige interface voor recente mailSneller antwoord met consistente uitvoer
Historische zoekopdrachtCSV-rapporten genereren voor grotere datasets binnen de bewaartermijn van 90 dagenOndersteunt asynchrone rapportage over bredere datumbereiken, binnen de resultaatlimieten
App-only automatiseringVeilige, niet-interactieve planningenBetrouwbare en compliant onbeheerde runs
Genormaliseerde exportsGestandaardiseerde en gestructureerde rapportageEenvoudiger data koppelen en integreren in dashboards
Auditvriendelijk bewijsGelogde runs en aantallen recordsTraceerbaarheid voor onderzoeken en beoordelingen

Waarom message trace-rapporten in Microsoft 365 met PowerShell genereren?

Het genereren van Microsoft 365 message trace-rapporten met PowerShell is een snellere en herhaalbare manier om de mailstroom over meerdere tenants te analyseren. Anders dan de grafische interface in het Exchange-beheercentrum biedt PowerShell automatisering en nauwkeuriger filteren, wat ideaal is voor onderzoeken en doorlopende compliancerapportage. De belangrijkste voordelen zijn dat u:

  • Traces en exports kunt plannen zonder handmatig ingrijpen.
  • Grote datasets en lange datumbereiken efficiënt kunt verwerken.
  • Exacte filters kunt toepassen op afzender, ontvanger of status.
  • Parameters, tijdstempels en resultaten kunt loggen voor traceerbaarheid.
  • Rapporten kunt doorvoeren naar monitoringtools of governancedashboards.

Voorbeeld van een automatiseringskoppeling

MSP’s kunnen automatisering inzetten om message trace in de dagelijkse werkzaamheden te integreren. Zo verzamelt u consistent bewijs en krijgt u tijdig inzicht zonder handmatig werk. Hier volgt een voorbeeld van een workflow voor een geplande PowerShell-taak die tracen, rapporteren en documenteren stroomlijnt:

  • Dagelijkse live trace-taak: voert elke 24 uur Get-MessageTraceV2 uit om recente bezorgactiviteit vast te leggen.
  • Verrijking met details: gebruikt Get-MessageTraceDetailV2 om per bericht hop-voor-hopgegevens toe te voegen.
  • Gestructureerde export: schrijft de resultaten naar een CSV-bestand met tijdstempels en tenant-id’s in de naam, zodat alles eenvoudig te volgen is.
  • Wekelijkse historische export: voert één keer per week Start-HistoricalSearch uit om een dataset van 10 dagen te genereren voor bredere analyse.
  • Logging van runs: legt start- en eindtijden, aantallen items, duur en filterparameters vast voor auditdoeleinden.
  • Geautomatiseerde rapportage: plaatst een beknopte samenvatting van de resultaten in de documentatie- of monitoringomgeving voor snel inzicht.

Integratie met NinjaOne

NinjaOne kan worden geïntegreerd met Microsoft 365 message trace zodat MSP’s uiteenlopende taken binnen hun managementplatform kunnen automatiseren. Dat vereenvoudigt complianceworkflows en versterkt het inzicht.

IntegratietaakDoelOpgeleverde waarde
Scripts uitrollen en plannenPowerShell-taken voor message trace automatiseren vanuit het NinjaOne-portaalZorgt voor consistente, onbeheerde rapportgeneratie bij alle klanten
Referenties veilig opslaanBeheerders- of app-referenties versleuteld bewaren in de referentieopslag van NinjaOneBeschermt gevoelige toegangsgegevens en ondersteunt compliance
Exports en logs koppelenCSV-bestanden en runlogs uploaden naar de klantdocumentatieCentraliseert bewijsmateriaal voor onderzoeken en audits
Belangrijke statistieken samenvattenDagtotalen en opvallende berichtstatussen tonen in dashboards of rapportenGeeft snel operationeel inzicht en ondersteunt QBR-gesprekken

Betrouwbare compliance met message trace via PowerShell

Beheerders en MSP’s onderzoeken de e-mailbezorging sneller en nauwkeuriger door Microsoft 365 message trace-rapporten met PowerShell te genereren. Dat levert exacte controle, automatisering en consistentere rapportage op, waardoor u problemen eenvoudiger onderzoekt, compliance behoudt en documentatie over de bezorggezondheid oplevert. Door automatisering te combineren met de stappen uit dit artikel, draagt elke trace-run bij aan transparantie en verantwoording.

Gerelateerde onderwerpen:

FAQs

Microsoft 365 bewaart message trace-gegevens van Exchange Online 90 dagen. Live traces kunnen elke periode van 10 dagen binnen dat venster opvragen, terwijl historische zoekopdrachten berichten tot 90 dagen oud dekken via downloadbare CSV-rapporten, binnen de resultaatlimieten. Wilt u tracegegevens langer dan 90 dagen bewaren? Exporteer en bewaar ze dan voordat ze verlopen.

Get-MessageTraceV2 geeft message trace-resultaten rechtstreeks terug in PowerShell voor de afgelopen 90 dagen, met een datumbereik van maximaal 10 dagen per query en maximaal 5.000 resultaten per aanroep. Start-HistoricalSearch draait asynchroon en genereert een downloadbaar CSV-rapport voor berichten tot 90 dagen oud, zonder de beperking van 10 dagen per query, maar met een limiet van 100.000 resultaten per rapport.

Message trace helpt bij het in kaart brengen van bezorgpaden en acties van beveiligingsfilters, waardoor zichtbaar wordt of een bericht is gemarkeerd als spam, spoofing of phishing. Diepgaandere beveiligingsanalyse combineert u echter met Defender voor Office 365 of tools voor dreigingsonderzoek.

PowerShell maakt consistente logging, tijdstempeling en bewaring van bewijs mogelijk tijdens message trace. Daardoor kan elk rapport worden gereproduceerd, geverifieerd en toegevoegd aan auditdocumentatie voor compliancebeoordelingen.

Beheerders stuiten vaak op machtigingsproblemen, throttlinglimieten of verlopen sessies. U voorkomt deze problemen door app-only authenticatie te gebruiken, retry-logica voor tijdelijke fouten te implementeren en te zorgen dat op rollen gebaseerde toegang correct is geconfigureerd.

Voor doorlopende monitoring worden dagelijkse live traces en wekelijkse of maandelijkse historische zoekopdrachten aanbevolen. Die balans zorgt voor tijdige detectie van bezorgproblemen en consistente verzameling van bewijs voor compliance en operationele beoordelingen.

Dit vindt u misschien ook leuk

Klaar om de moeilijkste delen van IT te vereenvoudigen?