Exchange Server 2010 Database Quotas by Management Shell

To follow up on the previous Exchange Server topic –

I need to be able to set employee mailbox quotas at the database level, which will guarantee all mailboxes in that database have the same same quotas. I was unable to find the exact command  to use online to accomplish following: set a quota on a DATABASE (not a mailbox, which is easy and not as dangerous) AND also override any current settings. Exchange and / or Systems Administrators are wise to test command line items beginning with “SET”. So in my case, I was able to set up a test database in Exchange. I set that database quota default to something silly, like @ 50 Megabytes = no email receiving ability.

I then moved 2 test mailboxes to the test database. I verified each mailbox had distinct individual quotas and were not inheriting the database defaults. I then went to the Exchange Management Shell. I knew I’d be setting (SET-), like a database. But I also recalled the syntax actually was Set-MailboxDatabase. This shell can be friendly, for instance if you have an idea of where you’re going, you type a few letters you can try the arrow keys. It may go through a menu of available arguments. Regardless I decided to skip the Google or Bing searches, which continuously yielded MAILBOX quota search results. [Again, I’m trying to set quota defaults at the Database level and override individual quotas]. Instead I used the very helpful -? option


As seen above, if you dig in enough you can see 3 key areas – issue warning, prohibit send, and prohibit send/receive.

Exchange Server Mailbox Quotas

I am not sure about other Exchange Server Email infrastructure administrators, but I find it challenging to come up with reasonable mailbox quotas AND implementing them in a time efficient and coherent manor. The goal is to set maximum mailbox size quotas that work for all involved: I.T. Departments and various employees and respective departments. All of this needs Managerial or Exec approval, of course! If quotas are not set (and enforced), then typical modern employees will have huge mailboxes. We live in a world of HTML-based emails and sometimes large attachments. Over time, it all adds up. Also, implementation of quotas should be done efficiently. Although employee mailbox quotas CAN be set individually, this can be very time-consuming and cumbersome as time goes on.

The long-term goal is to get thee to a Cloud mail service, in my opinion. Being a Microsoft systems Engineer, I would favor Office 365, which incidentally has a baseline of 25 Gigabytes maximum PER USER mailbox size as of late 2014. Nice! But for most companies and organizations, cloud services are either a project in the making or not in the picture yet for whatever reason. Some may be worried about security or simply not be willing to change just yet, or some may be waiting for pricing to come down.

Whatever the reason, for those hosting Exchange Server on premises or at a Datacenter, reasonable quotas are the way to keep storage (disk space) costs reasonable. Solid RAID’d SATA drives, for example are not like a home PC hard drive (anyone still using?), which can be bought for a small price. I am referring to small to medium sized companies here, so if assuming hundreds or thousands of employees, you can see how costs can grow immensely for server-level or SAN drives.

Exchange Server can house numerous mail ‘databases’. Each database can house hundreds or thousands of user mailboxes. Now, Mailbox quotas can and should be set at the database level and therefore filter downward. Individual Mailboxes can override this as needed. So databases can be set up according to department needs, or employee classification. An Executive or owner obviously gets more space than an entry level administrative assistant. Simple example, but useful. The challenge can come over time, as employees transition in-house, get promoted, get approval for a quota override of the Database quota. Mailbox Database design changes over time, as a reflection of organization growth or shrinkage.

One of the easiest ways to do this is to use the Exchange Management Shell to implement a top level scheme:

‘Set-MailboxDatabase -Identity YOURDBNAME -IssueWarningQuota 1900 -ProhibitSendQuota 2000’

This sets the warning for the quota to ~ 1900 MegaBytes as the employee approaches the actual quota itself, @ 2000 MegaBytes (‘2 Gigs’).