I was recently asked by a client to generate a report of all the mailboxes on their Exchange 2013 infrastructure highlighting the current:
- Storage usage
- Issue a warning at (GB)
- Prohibit send at (GB)
- Prohibit send and receive at (GB)
As most administrators would know, attempting to use the ECP and manually review these settings for each user’s mailbox properties:
… is not a practical method when there are many mailboxes in the organization. The ideal way would be to use PowerShell cmdlets to display the configuration. I did a bit of research for this exercise and since I don’t live an breath in Exchange PowerShell on a regular basis, I thought it would be a good idea to write this blog post so I can have something to reference to in the future.
To display all mailboxes and the following configuration:
- Storage usage
- Issue a warning at (GB)
- Prohibit send at (GB)
- Prohibit send and receive at (GB)
… execute the following cmdlet:
Get-MailboxStatistics -Server <mailboxServerName> | FL DisplayName,TotalItemSize,DatabaseIssueWarningQuota,DatabaseProhibitSendQuota,DatabaseProhibitSendReceiveQuota
An output similar to the following would be generated:
————————————————————————————————————————————————————
Execute the following cmdlet to determine what the quota settings configured on the mailbox database is:
Get-Mailboxdatabase -Server <serverName>| FL Identity,IssueWarningQuota,ProhibitSendQuota,ProhibitSendReceiveQuota
An output similar to the following would be generated:
————————————————————————————————————————————————————
Execute the following cmdlet to determine which mailboxes have the default quota settings replaced with customized settings:
Get-mailbox -Server <serverName> -ResultSize unlimited | Where {$_.UseDatabaseQuotaDefaults -eq $false} |ft DisplayName,IssueWarningQuota,ProhibitSendQuota,@{label=”TotalItemSize(MB)”;expression={(get-mailboxstatistics $_).TotalItemSize.Value.ToMB()}}
An output similar to the following would be generated: