Microsoft 365 audit logs are essential for tracking user activity, investigating incidents, and ensuring compliance.
However, not all audit capabilities are equal.
In this guide, we’ll break down the real differences between E3 vs E5 audit logs, along with practical Graph PowerShell scripts you can use today.
Microsoft divides auditing into two levels:
| Feature | Audit (Standard) | Audit (Premium) |
| Included In | E3 / Business | E5 / Add-on |
| Log Retention | 90 days | 180 days – 1 year+ |
| Advanced Events | ❌ No | ✅ Yes |
| Search Query Logs | ❌ No | ✅ Yes |
| Mailbox Detailed Logs | ❌ Limited | ✅ Full |
| High-value Events | ❌ No | ✅ Yes |
| Feature | E3 | E5 |
| Log Retention | 90 days | 180 days to 1 year (or more with add-ons) |
| Advanced Audit Events | Does not include:
|
Includes:
|
| Mailbox Auditing Depth | Basic mailbox actions✅ Message read tracking❌ MailItemsAccessed event ❌ |
Basic mailbox actions✅ Message read tracking✅ MailItemsAccessed event ✅ |
| Investigation Capability | Limited visibility Hard to trace insider activity |
|
Install-Module Microsoft.Graph -Scope CurrentUser
Connect-MgGraph -Scopes "AuditLog.Read.All"
# Fetch recent audit logs
$Logs = Get-MgAuditLogDirectoryAudit -Top 50
$Logs | Select-Object `
ActivityDateTime,
ActivityDisplayName,
@{Name="User";Expression={$_.InitiatedBy.User.UserPrincipalName}},
LoggedByService | Format-Table
# Attempt to fetch search activity
$SearchLogs = Get-MgAuditLogDirectoryAudit -Filter "activityDisplayName eq
'SearchQueryPerformed'" -All
$SearchLogs | Select-Object ActivityDateTime, ActivityDisplayName
👉 Empty result (or event not found)
👉 Returns:
$MailAccess = Get-MgAuditLogDirectoryAudit -Filter "activityDisplayName eq 'MailItemsAccessed'"
-All
$MailAccess | Select-Object `
ActivityDateTime,
@{Name="User";Expression={$_.InitiatedBy.User.UserPrincipalName}},
ActivityDisplayName
This event helps detect:
👉 Not available in E3
| Requirement | E3 | E5 |
| Track file access | Partial | Full |
| Track email reads | ❌ | ✅ |
| Track searches | ❌ | ✅ |
👉 E5 is required
Copilot depends on:
👉 Only E5 provides this visibility
| Error | Cause | Solution |
| No results returned |
|
Verify license before troubleshooting |
| Error: Insufficient privileges | Insufficient privileges to complete the operation | Connect-MgGraph -Scopes "AuditLog.Read.All" |
| Error: Event not found | Event not supported in tenant | Upgrade to E5 / Audit Premium |
Upgrade if you need:
Microsoft 365 audit logs are powerful—but only if you have the right license.
👉 E3 = Basic visibility
👉 E5 = Deep insights + security intelligence
Using Graph PowerShell, you can clearly see the difference:
👉 If auditing is critical to your organization, E5 is not optional—it’s essential.
Did You Know? Managing Microsoft 365 applications is even easier with automation. Try our Graph PowerShell scripts to automate tasks like generating reports, cleaning up inactive Teams, or assigning licenses efficiently.
Ready to get the most out of Microsoft 365 tools? Explore our free Microsoft 365 administration tools to simplify your administrative tasks and boost productivity.
© Your Site Name. All Rights Reserved. Design by HTML Codex