blog

PowerShell – How to find users without default quota set on Microsoft Exchange

One of the easy things to miss during an Exchange migration is that some mailboxes do not inherit database defaults anymore. Years earlier somebody may have assigned explicit quotas to specific users, and after you increase the database-wide defaults those old custom settings keep following those mailboxes.

If you want everyone to go back to inheriting the mailbox database limits, PowerShell is much faster than checking each mailbox one by one in the admin UI.

Find mailboxes with custom quota settings

The quickest check is:

Get-Mailbox -ResultSize Unlimited | Where-Object { $_.UseDatabaseQuotaDefaults -ne $true }
ChangingAllUsersToDefaultQuota1

That returns mailboxes where UseDatabaseQuotaDefaults is not set to True, which means they are using explicit mailbox-level limits instead of inheriting the database values.

Switch those mailboxes back to database defaults

If you have confirmed that the mailboxes should inherit the database values again, you can pipe them directly into Set-Mailbox:

Get-Mailbox -ResultSize Unlimited |
    Where-Object { $_.UseDatabaseQuotaDefaults -ne $true } |
    Set-Mailbox -UseDatabaseQuotaDefaults $true
ChangingAllUsersToDefaultQuota2

Verify the result

Run the discovery command again:

Get-Mailbox -ResultSize Unlimited | Where-Object { $_.UseDatabaseQuotaDefaults -ne $true }
ChangingAllUsersToDefaultQuota3

If nothing is returned, every mailbox in scope is back to inheriting the database quota settings.

Safer variant

Before changing everything, I recommend exporting the current state so you have a rollback reference:

Get-Mailbox -ResultSize Unlimited |
    Where-Object { $_.UseDatabaseQuotaDefaults -ne $true } |
    Select-Object Name,Alias,UseDatabaseQuotaDefaults,IssueWarningQuota,ProhibitSendQuota,ProhibitSendReceiveQuota |
    Export-Csv .\MailboxQuotaOverrides.csv -NoTypeInformation

That gives you an audit trail before you normalize the mailboxes.

Current note

Microsoft still documents quota behavior this same way: mailbox-specific quota settings override the database defaults, and UseDatabaseQuotaDefaults controls whether the mailbox inherits those defaults. So even though the screenshots came from older Exchange versions, the PowerShell approach still maps cleanly to modern Exchange administration.