Reports, Insights & Troubleshoot
MS-203 Exam Alignment
MS-203
Monitor, report, and troubleshoot Exchange Online: interpret mail flow reports (auto-forwarded messages, inbound TLS, spam and malware), use EAC Insights for proactive recommendations, run standard and extended Message Trace, use the Remote Connectivity Analyzer, and search the Admin Audit Log.
- Identify what each mail flow report measures and when each is clinically useful for troubleshooting
- Know standard Message Trace (10-day window) vs extended Message Trace (90 days) and when each applies
- Use Remote Connectivity Analyzer (testconnectivity.microsoft.com) to diagnose Autodiscover and mail flow failures
- Search the Admin Audit Log with Search-AdminAuditLog — date range, cmdlet filter, user scope
- Understand EAC Insights and what triggers the auto-forwarding insight
📊 Mail Flow Reports
Mail flow reports are found in EAC → Reports → Mail flow. They are aggregated, time-range-filtered views of what is passing through Exchange Online Protection (EOP). They update with a delay of approximately 24–48 hours.
EAC › Reports › Mail flow
Shows messages auto-forwarded to external addresses — essential for detecting data exfiltration and misconfigured mailboxes
Shows inbound email volume split by TLS version (TLS 1.0, 1.1, 1.2, 1.3) and unencrypted — identifies insecure sender connections
Volume and trends of messages classified as spam by EOP — useful for tuning anti-spam policies and identifying spam campaigns
Attachments and URLs blocked by EOP anti-malware — shows threat volume, top malware families, and affected users
| Report | What It Shows | Primary Use Case |
|---|---|---|
| Auto-forwarded messages | External auto-forwarding rules active across the tenant — who is forwarding, to where, and message volume | Detecting data exfiltration, compromised accounts forwarding email externally, and enforcing no-forwarding policies |
| Inbound messages with TLS | Inbound email volume broken down by TLS version (1.0, 1.1, 1.2, 1.3) and non-TLS (unencrypted) | Identifying partner or customer mail servers using deprecated TLS versions before enforcing TLS 1.2 minimum on connectors |
| Outbound messages with TLS | Same breakdown for outbound email — how your messages leave Exchange Online | Verifying outbound TLS enforcement; confirming connector-enforced TLS is working correctly |
| Spam detections | Volume of messages classified as spam by EOP over time, with top spam sources | Identifying spam campaign spikes, tuning bulk threshold (BCL) settings, reviewing false positive/negative rates |
| Malware detections in email | Attachments and URLs blocked by EOP anti-malware — volume, top malware families, affected recipients | Understanding threat landscape, identifying targeted users, reporting to security teams |
| Compromised users | Accounts flagged by Microsoft as likely compromised based on suspicious outbound sending patterns | Identifying and remediating hijacked accounts before they send further spam or phishing |
💡 EAC Insights
EAC Insights appear on the EAC Home dashboard and the Insights panel — they are AI-driven proactive recommendations generated by Microsoft based on detected anomalies or configuration issues in your tenant.
💡 How Insights Work
Insights monitor your tenant configuration and mail flow patterns in the background. When a potential issue or improvement opportunity is detected, an insight card appears. Each insight links directly to the fix or configuration page. Common insights include:
- Auto-forwarding insight — Triggers when Microsoft detects mailboxes auto-forwarding to external addresses, especially if no transport rule is blocking this. The insight links you to the auto-forwarded messages report and the transport rule configuration to block external auto-forwarding.
- DKIM configuration insight — Appears when DKIM signing is not enabled for your accepted domains.
- Connector TLS insight — Fires when a partner connector is configured to accept email without TLS enforcement.
- Outbound spam insight — Generated when an account is sending suspicious volume outbound, suggesting possible compromise.
🔍 Message Trace
Message Trace is the primary tool for tracking a specific email's journey through Exchange Online — from the moment it was received (or submitted for sending) to final delivery or failure. It answers the question: "What happened to that email?"
EAC › Reports › Message trace
| Standard Message Trace | Extended Message Trace | |
|---|---|---|
| Time window | Last 10 days | Up to 90 days |
| Results | Displayed inline in the EAC immediately | Delivered as a downloadable CSV report (takes minutes to hours) |
| Detail level | Per-message summary — status, recipient, timestamp, delivery status | Full per-hop routing details — each Exchange server, each processing step, timestamps per hop |
| When to use | Recent delivery issues — "Where is the email I sent yesterday?" | Older issues or compliance investigations — "Was that phishing email received 6 weeks ago?" |
| How to access | EAC → Reports → Message trace → Run trace | EAC → Reports → Message trace → Downloadable reports tab |
⚠️ Key Message Trace Status Values
- Delivered — Message was delivered to the recipient's mailbox
- FilteredAsSpam — Message was classified as spam and sent to the Junk Email folder (or quarantine)
- Quarantined — Held in EOP quarantine — admin or user must release it
- Failed — Permanent delivery failure — check the detail for the SMTP error code and reason
- Pending — In the delivery queue — temporary issue, Exchange will retry
- Expanded — Message was sent to a distribution group and expanded to individual recipients
Connect-ExchangeOnline # Standard trace — messages from a sender over the last 48 hours Get-MessageTrace -SenderAddress sender@contoso.com -StartDate (Get-Date).AddDays(-2) -EndDate (Get-Date) | Select-Object Received,SenderAddress,RecipientAddress,Subject,Status,MessageId # Trace for a specific recipient Get-MessageTrace -RecipientAddress user@techcareers.in -StartDate (Get-Date).AddDays(-7) -EndDate (Get-Date) | Select-Object Received,SenderAddress,Subject,Status # Full hop-by-hop detail for a specific message Get-MessageTraceDetail -MessageTraceId "[MessageTraceId]" -RecipientAddress user@techcareers.in | Select-Object Date,Event,Action,Detail | Format-Table -AutoSize # Extended trace (older than 10 days) — submitted as async report request Start-HistoricalSearch -ReportTitle "Phishing-Investigation-June" -StartDate 2025-06-01 -EndDate 2025-06-30 -ReportType MessageTrace -SenderAddress phish@badactor.com
🌐 Remote Connectivity Analyzer
The Remote Connectivity Analyzer at testconnectivity.microsoft.com is a Microsoft-hosted external testing tool that simulates connections to your Exchange Online environment from outside. It tests Autodiscover, ActiveSync, Outlook Anywhere, SMTP, and other services — from Microsoft's own infrastructure, replicating what an end-user or external mail server would experience.
| Test | What It Checks | Use Case |
|---|---|---|
| Outlook Autodiscover | Whether Autodiscover resolves correctly for a given email address — checks DNS, redirect chains, and the XML response | Outlook not connecting automatically; new user profiles failing to set up |
| Exchange ActiveSync | Whether a mobile device can reach the ActiveSync endpoint and authenticate | Mobile phones not syncing; testing before deploying a Mobile Device Mailbox Policy |
| Inbound SMTP Email | Whether external mail servers can deliver email to your domain — checks MX records, banner, TLS, and response codes | External senders reporting delivery failures to your domain |
| Outbound SMTP | Tests whether your Exchange Online sends email correctly and DKIM/SPF are passing | Your outbound email being rejected or landing in external spam folders |
| Microsoft 365 General | Connectivity and authentication to Microsoft 365 services broadly | General connectivity issues for a tenant |
✅ When to Use Remote Connectivity Analyzer vs Message Trace
- Use Message Trace when you know a specific email was sent and want to know what happened to it (delivery, filtering, quarantine)
- Use Remote Connectivity Analyzer when you need to diagnose a connectivity problem — Autodiscover not working, ActiveSync not connecting, or external mail not reaching your domain. It tests the infrastructure path, not individual messages
📋 Admin Audit Log
The Admin Audit Log records all Exchange Online administrative actions — every cmdlet run by any administrator with a role group assignment. It answers: "Who changed this setting, and when?" It stores logs for 90 days by default.
Connect-ExchangeOnline # All admin activity in the last 7 days Search-AdminAuditLog -StartDate (Get-Date).AddDays(-7) -EndDate (Get-Date) | Select-Object RunDate,Caller,CmdletName,ObjectModified | Format-Table -AutoSize # Who changed transport rules in the last 30 days Search-AdminAuditLog -Cmdlets "New-TransportRule","Set-TransportRule","Remove-TransportRule" -StartDate (Get-Date).AddDays(-30) -EndDate (Get-Date) | Select-Object RunDate,Caller,CmdletName,ObjectModified,CmdletParameters # All changes made by a specific admin Search-AdminAuditLog -UserIds admin@techcareers.in -StartDate (Get-Date).AddDays(-30) -EndDate (Get-Date) | Select-Object RunDate,CmdletName,ObjectModified | Format-Table -AutoSize # Who deleted a mailbox Search-AdminAuditLog -Cmdlets "Remove-Mailbox" -StartDate (Get-Date).AddDays(-30) -EndDate (Get-Date) | Select-Object RunDate,Caller,ObjectModified
⚠️ Admin Audit Log vs Microsoft Purview Audit
The Exchange Admin Audit Log (Search-AdminAuditLog) covers Exchange Online administrative cmdlet activity — who ran Exchange PowerShell commands. The Microsoft Purview Unified Audit Log (Search-UnifiedAuditLog) covers all Microsoft 365 workloads including SharePoint, Teams, OneDrive, Azure AD, and Exchange user activity. For compliance investigations spanning multiple M365 services, Purview Unified Audit is the right tool. For Exchange-specific admin changes, Search-AdminAuditLog is faster and more targeted.
💡 Best Practices
- Check the Auto-forwarded messages report monthly — external auto-forwarding is a primary data exfiltration vector and often set up by compromised accounts, not intentional users
- Use Message Trace as the first step for any user complaint about missing or undelivered email — it takes 2 minutes and immediately tells you whether Exchange received the message at all
- Run Remote Connectivity Analyzer when Autodiscover problems are reported — it tests from outside your network, which internal ping/curl tests cannot replicate
- Review the Admin Audit Log after any unexpected configuration change — it provides a 90-day history of every Exchange admin cmdlet with caller identity, timestamp, and parameters
- Set up a transport rule to block external auto-forwarding if the auto-forwarded messages report shows unexpected external forwarding — this is the most common security recommendation generated by EAC Insights
🎓 Interview Q&A
Search-AdminAuditLog -Cmdlets "Remove-TransportRule" -StartDate (Get-Date).AddDays(-30) -EndDate (Get-Date). The results show the RunDate (when it was deleted), the Caller (which admin account ran the cmdlet), and the ObjectModified (the name of the deleted rule). The Admin Audit Log retains 90 days of activity and logs every Exchange Online administrative cmdlet — including who deleted, created, or modified any object.A user reports that an email they sent to an external client 5 days ago was never received. The client confirms they have not seen it in spam either. What is the first tool you should use to investigate?
A Message Trace shows the status "FilteredAsSpam" for a legitimate email a partner sent to your organisation. What does this mean and what is the correct action?
Users in your organisation are reporting that Outlook does not automatically configure when they enter their email address — they have to configure it manually. Which tool should you use to diagnose this?
The EAC Auto-forwarded messages report shows that 12 mailboxes have active forwarding rules sending email to external addresses. What is the most appropriate security action?
A compliance officer needs to determine who deleted a transport rule 6 weeks ago. Which PowerShell cmdlet would you use and which parameter limits the search to that action?