Mailbox quotas vary enormously from deployment to
deployment and should reflect the need users have for email to support
their work. A factory worker might need a quota of only 50 MB to
receive workplace notices and announcements, whereas an executive in an
information-rich company could require a quota of 50 GB or more. In
some respects, any discussion about setting mailbox quotas is often
academic because administrators do not pay as much attention to this
topic as they did in the past. This is for a few reasons.Storage
is much cheaper today than ever before. Therefore, it is has become
feasible to provide large mailboxes on a very economical basis. As
storage prices continue to drop, the tendency to contemplate larger
mailbox sizes will also continue. Microsoft is looking at how servers
and clients can manage 100-GB mailboxes, which is a huge amount of
information when compared to the meager 25-MB mailboxes that were
commonplace when Exchange 4.0 was launched in 1996.
Users expect
that they will have large mailboxes at work, largely because consumer
email systems continually increase the space they allow for free
mailboxes. The question often asked is, if Gmail or Outlook.com can offer a huge amount of storage for email, why can’t my company’s email system do the same?
On
a commercial level, the cloud-based versions of Exchange usually
provide mailboxes of at least 25 GB, further confirming the user view
that they should have the same storage available when at work. A
proliferation of free storage repositories such as SkyDrive exist to
offer users even more space.
A major engineering focus for
Exchange over the last two versions has been how to enable users to
keep as much information as possible in the Store rather than forcing
users to keep moving data into PSTs, as they were forced to do in the
past. Keeping everything in the Store is easier for users and makes it
feasible for companies to operate a comprehensive compliance regime.
Features such as archive mailboxes increase available storage even
more, and retention policies allow unwanted information to be aged out
and removed from mailboxes automatically.
Given the pressure for
workers to be as productive as possible, it makes little sense to force
users to spend time (sometimes on a daily basis) cleaning up mailboxes
before they can process email. Time spent reviewing and deleting
messages from a mailbox would be better spent dealing with more
mission-critical business.
The
result of these influences is that it is now common for administrators
to set a reasonably large default quota and not worry too much more
about the issue until users look for additional quota. Apart from
letting administrators get on with more important work, the fact is
that it takes even prolific users some time to fill a multi-gigabyte
mailbox. Another approach often seen is that mailbox quota defaults are
immediately set to higher values (usually 5 GB or higher) after a
database is created so that any new mailbox created in the database
receives a quota that should not need adjustment for a couple of years.
Even
with these factors, the vast majority of users in large corporations
probably still have a mailbox quota of less than 1 GB. The average
mailbox size has been rising slowly. If you work for a company that
still likes to exert some level of control over mailbox quotas, if only
to calculate the storage requirements for databases with some degree of
accuracy, you can set three mailbox properties that combine to control
the quota available to the mailbox.
IssueWarningQuota. This
value determines when Exchange starts to issue warning messages to the
user that he is approaching his mailbox quota. Given that mailbox
quotas vary so much, it is difficult to offer suggestions about how
much short of when the user can no longer send mail this value should
be set. Because you want users to be able to react to the warning they
receive, it’s a good idea to set the value to allow several days to
elapse before the shutters come down and the user cannot work. For
example, if user mailboxes typically grow by 20 MB each day during the
working week, setting the warning point at 100 MB before Exchange stops
the user from sending any new messages allows the user up to a complete
working week to take the necessary action to clean out her mailbox or
request additional quota.
ProhibitSendQuota. This
value determines when Exchange stops the user from sending any new
messages. When users refer to their mailbox quota, they usually refer
to this value because it marks the point when they have to take action
before they can send email again.
ProhibitSendReceiveQuota. This
value determines the point when Exchange refuses to accept new messages
in the mailbox. Messages arriving past this point are returned to the
originator with an error indicating that the target mailbox is full.
Typically, this value is placed between 100 MB and 200 MB higher than
the ProhibitSendQuota value to account for situations such as
vacations, when users might inadvertently leave their mailboxes almost
full. The buffer established by the difference between the
ProhibitSendQuota and ProhibitSendReceiveQuota values allows the
mailbox to continue to accept new messages until users return and can
delete old items from their mailboxes and restore full operation.
Exchange
sends messages to warn users of approaching quota thresholds or to tell
them that they have exceeded their mailbox quota according to a
schedule maintained in the QuotaNotificationSchedule property that is
set on every mailbox database. You can see the schedule for a database
by running a command like this:
Get-MailboxDatabase –Identity 'DB2' | Format-List Name, QuotaNotificationSchedule
When
a new mailbox is created, it inherits its quota settings from those
assigned to the database in which it is created. For example, any
mailbox created in the database shown in Figure 1
that is not assigned an individual set of quotas begins receiving
warning messages at 1.9 GB, stops being able to send new messages at 2
GB (the mailbox quota), and cannot receive any more new mail at 2.3 GB.
These are the default values Exchange 2013 assigns to new mailbox
databases.
Mailboxes
that use the quotas inherited from the database settings have their
UseDatabaseQuotaDefaults property set to $False, whereas those that
have individual quota settings have the property set to $True. It’s
therefore easy to find out which mailboxes in a database have been
assigned individual quotas with a command like this:
Get-Mailbox –Database DB2 | Where-Object {$_.UseDatabaseQuotaDefaults –eq $False} | Format-Table DisplayName, IssueWarningQuota, ProhibitSendQuota, ProhibitSendReceiveQuota
If
the default mailbox quotas Exchange 2013 sets don’t work for your
installation, you need to update the properties of mailbox databases to
set whatever values you want to use. After updating the databases, you
might need to review mailboxes that already exist in each database to
determine whether their quotas need to be adjusted.
At
any time after they are created, individual mailboxes can be assigned
specific quotas to meet their business needs. To update quotas with
EAC, select the mailbox, view its properties, choose Mailbox Usage, and
click More to reveal the fields in which you can input the new quota
settings (Figure 2).
Click Customize The Settings For This Mailbox to make the three quota
fields active. Note that EAC does not allow you to enter values using
more than two decimal places.
You can also use the Set-Mailbox cmdlet to assign new quota values to mailboxes. For example:
Set-Mailbox –Identity 'Redmond, Tony' –UseDatabaseQuotaDefaults $False –IssueWarningQuota 500MB –ProhibitSendQuota 520MB –ProhibitSendReceiveQuota 540MB
Quota
values can be expressed in KB, MB, or GB. A one-line EMS command is a
great way to set the same quota on a group of mailboxes. For example,
you could set the same quota values for every mailbox in an OU:
Get-Mailbox –OrganizationalUnit 'contoso.com/Exchange Users' | Set-Mailbox
–UseDatabaseQuotaDefaults $False –IssueWarningQuota 500MB
–ProhibitSendQuota 520MB –ProhibitSendReceiveQuota 540MB
You
can use the same approach to assign quotas to every member of a
distribution group. In this case, the command to give members of the IT
department the quotas they deserve is:
Get-DistributionGroupMember –Identity 'IT Department' | Set-Mailbox
–UseDatabaseQuotaDefaults $False –IssueWarningQuota 985MB
–ProhibitSendQuota 1GB –ProhibitSendReceiveQuota 1.1GB
To check that the right quotas are in place, you can do something like this:
Get-Mailbox –Identity 'Redmond, Tony' | Select *quota*
Exchange
maintains several other quota settings for mailboxes. The
RecoverableItemsQuota and RecoverableItemsWarningQuota settings are
roughly equivalent to the ProhibitSendQuota and IssueWarningQuota
settings except that they control the amount of data that a mailbox can
store in the Recoverable Items folder. By default, Exchange 2013 allows
30 GB of recoverable data to be held in a mailbox. The RulesQuota
setting limits the amount of rules data a mailbox can hold, and 64 KB
is the default. The ArchiveQuota and ArchiveWarningQuota settings
control how much information can be held in an associated personal
archive if this feature is enabled. Exchange allows an unlimited quota
for the archive, so in this case, the quota has been set back to a hard
limit of 50 GB (still more than enough).
New quotas are not
immediately effective because the Store first has to refresh the cached
data it holds about mailbox settings. The cache is refreshed every two
hours, so you could have to wait this long before the new quota
settings are in place. You can update the Reread Logon Quotas Interval
registry setting to force more frequent refreshes of this data at the
expense of additional system overhead. (Refreshing the data every five
minutes would definitely be a bad idea; every hour or so should be
acceptable.) The DWORD value is set in seconds. (The default value is
7,200 seconds, or two hours.) This value depends on other values that
control how often Exchange retrieves information from Active Directory.
Another option is to restart the Information Store process to force a
cache refresh. This approach is acceptable on a test server but
probably not on a production server.
Note
Don’t
forget to reserve some additional disk space to accommodate expected
database growth over the next year or so and to account for temporary
space required by activities such as mailbox moves or offline database
maintenance.