A cloud-based service included in Microsoft 365, delivering scalable messaging and collaboration features with simplified management and automatic updates.
Hi @Roger Roger
I understand your concern regarding how mailbox audit logging is managed and ensured within your tenant.
For your concerns:
To check the current mailbox audit settings across all mailboxes and validate the existing audit actions configured for each sign‑in type
You could refer to AI's suggestion. Additionally, to obtain a tenant‑wide view of the current audit configuration for all user mailboxes, you can run the following PowerShell commands and export the results to a CSV file for review.
Get-Mailbox -ResultSize Unlimited -Filter "RecipientTypeDetails -eq 'UserMailbox'" |
Select-Object DisplayName, PrimarySmtpAddress, AuditEnabled, AuditAdmin, AuditDelegate, AuditOwner |
Export-Csv .\MailboxAuditConfig.csv -NoTypeInformation
You should check the following:
AuditEnabled must be set to True for mailbox auditing to function.
The AuditAdmin, AuditDelegate, and AuditOwner parameters define which actions are logged for each sign‑in type.
For sign‑in types and how they are differentiated
Exchange Online automatically differentiates these sign‑in types in the backend:
You can refer via: Manage mailbox auditing | Microsoft Learn
To enable and update these audit actions
To apply the exact long list of actions required by your security team, you must update the mailboxes manually. You can use the following script to fulfill their requirement across all user mailboxes:
$adminActions = "ApplyRecord,Create,HardDelete,MailItemsAccessed,MoveToDeletedItems,SendAs,SendOnBehalf,SoftDelete,Update,UpdateCalendarDelegation,UpdateFolderPermissions,UpdateInboxRules"
$delegateActions = "ApplyRecord,Create,HardDelete,MailItemsAccessed,MoveToDeletedItems,SendAs,SendOnBehalf,SoftDelete,Update,UpdateFolderPermissions,UpdateInboxRules"
$ownerActions = "ApplyRecord,HardDelete,MailItemsAccessed,MoveToDeletedItems,SoftDelete,Update,UpdateCalendarDelegation,UpdateFolderPermissions,UpdateInboxRules"
Get-Mailbox -ResultSize Unlimited -Filter "RecipientTypeDetails -eq 'UserMailbox'" |
ForEach-Object {
Set-Mailbox -Identity $_.PrimarySmtpAddress -AuditAdmin $adminActions -AuditDelegate $delegateActions -AuditOwner $ownerActions -AuditEnabled $true
}
Regarding the impact on user mailboxes
There is no measurable impact on mailbox performance or user experience. Audit logging is processed by Exchange Online backend services.
Some actions, especially MailItemsAccessed, can generate higher log volumes on high‑activity mailboxes. However:
Logs are stored outside of the mailbox.
They do not consume mailbox quota.
This level of logging is standard and recommended for security and compliance monitoring.
I hope this helps.
Please feel free to correct me if I misunderstood your request. If you have any additional concerns, feel free to comment below. I would be more than happy to assist.
Note: Please follow the steps in [our documentation] to enable e-mail notifications if you want to receive the related email notification for this thread.