Monday, June 8, 2015

Exchange Server 2013 PowerShell cmdlets for reviewing mailbox storage quotas

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:

image

… 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:

image

------------------------------------------------------------------------------------------------------------------------------------------------------------

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:

image

------------------------------------------------------------------------------------------------------------------------------------------------------------

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:

image

No comments: