Agramont.net

Sr. Product Manager, Enterprise Tech for Accelrys
Welcome to Agramont.net Sign in | Join | Help
in Search

Conrad Agramont's Blog

Assigning Mailbox Quotas and Restrictions via Plans

The “Microsoft Solution for Hosted Messaging & Collaboration 3.0” (HMC) provides a method for per user feature bundling via their “Plans System”. When provisioning new HMC users with mailboxes, Plans are used to determine what features and mailbox size a given user will be allocated. A default implementation of HMC and the Plans Database is the Quota values associated with a mailbox. The Quota values are used by Exchange Server 2003 to determine when to:

  • Warn the user when they are about to reach their limit
  • Restrict sending email once the user has reach a specified mailbox size
  • Restrict sending and receiving email once the user has reach a specified mailbox size

In Exchange Server 2003, these settings can be assigned to a Storage Groups as a set of defaults. When HMC enables a mailbox for a given user, it explicitly disables the use of defaults and sets the associated quota values per user.

The issue in this is the calculation used by HMC to determine what those Quota values should be set to. When provisioning a mailbox for a give user using the “Hosted Exchange” namespace, the following quota values are set based on a percentage of the allocated mailbox size:

  • Warning: 90%
  • Restrict Send: 100%
  • Restrict Send/Receive: 500%

In order to change the default mailbox quota settings defined in the solution and associate them with a new plan, you must do the following:

1. Add additional “FeatureTypes” to the HMC Plans Database
2. Create a new Plan and associate the new “FeatureTypes” with the plan.

The first step in this process is to add a collection of new “FeatureTypes” that will update the Plans database with the new settings. To accomplish this, you must submit an MPF Request and call the Hosted Exchange namespace’s “CreatePlanFeatureTypes” procedure.

The following MPF Request will add three new “Feature Types” to the HMC Plans Database.

  • featureName - Reference name that will be used when adding this Feature Type to a give plan.
  • featureDescription – Description of the featureType.
  • nativeAttribute – An attribute name that is in the Active Directory Schema associated to a User Object.
  • parentNode – Used to determine what internal function will utilize and act on this Feature Type. In order to update an AD property, this value must be set to “properties”.

<request xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<procedure xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<execute namespace="Hosted Exchange" procedure="CreatePlanFeatureTypes" impersonate="1">

<executeData>

<planFeatures>

<feature>

<featureName>mDBOverHardQuotaLimit</featureName>

<featureDescription>Prohibit Send/Receive</featureDescription>

<nativeAttribute>mDBOverHardQuotaLimit</nativeAttribute>

<parentNode>properties</parentNode>

</feature>

<feature>

<featureName>mDBOverQuotaLimit</featureName>

<featureDescription>Prohibit Send</featureDescription>

<nativeAttribute>mDBOverQuotaLimit</nativeAttribute>

<parentNode>properties</parentNode>

</feature>

<feature>

<featureName>mDBStorageQuota</featureName>

<featureDescription>Warning Size</featureDescription>

<nativeAttribute>mDBStorageQuota</nativeAttribute>

<parentNode>properties</parentNode>

</feature>

</planFeatures>

<preferredDomainController>playdev01.playdev.local</preferredDomainController>

</executeData>

<after source="executeData" destination="data" mode="merge"/>

</execute>

</procedure>

</request>

You’ll need to save the above xml into a file and submit it to the provisioning system (e.g. Provtest.exe). Once this is completed, you’ll have now added the “FeatureTypes” into the Plans Database. The next step in this process is to create a new Plan that will utilize the new “FeatureType”.

The following XML Request will create a new plan and add in the “Feature Types” defined in the above XML Request. Where the above MPF request defines the feature types and properties, it’s the definition within a plan that defines where it will be used and their value.

As it relates to the subject of this document, a list of items that need to be updated are below:

  • mDBOverHardQuotaLimit – Prohibit Send/Receive
  • mDBOverQuotaLimit – Prohibit Send
  • mDBStorageQuota – Warning Size

You should also rename the Plan Name and Description to suit your naming conventions. Also, you’ll need to update the preferredDomainController value to match your environment.

<?xml version="1.0" encoding="utf-8"?>

<request>

<procedure xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<procedureData>

<plans>

<plan>

<planName>PlatinumPlusMail3</planName>

<planDescription>Platinum Plus plan 3</planDescription>

<planCategories>

<category>

<categoryName>HeBusiness</categoryName>

</category>

</planCategories>

<planFeatures>

<feature>

<featureName>OWA</featureName>

<featureDescription>Outlook Web Access</featureDescription>

<featureValue>0</featureValue>

</feature>

<feature>

<featureName>POP</featureName>

<featureDescription>POP Mail Access</featureDescription>

<featureValue>0</featureValue>

</feature>

<feature>

<featureName>IMAP</featureName>

<featureDescription>IMAP Mail Access</featureDescription>

<featureValue>0</featureValue>

</feature>

<feature>

<featureName>MailboxSize</featureName>

<featureDescription>Mailbox size in kilobytes</featureDescription>

<featureValue>20000</featureValue>

<unitDescription>kb</unitDescription>

</feature>

<feature>

<featureName>OwaSegment</featureName>

<featureDescription>Full Outlook Web Access</featureDescription>

<featureValue>131071</featureValue>

</feature>

<feature>

<featureName>OutlookClient</featureName>

<featureDescription>Full Outlook Client Access enabled</featureDescription>

</feature>

<feature>

<featureName>mDBOverHardQuotaLimit</featureName>

<featureDescription>Prohibit Send/Receive</featureDescription>

<featureValue>25000</featureValue>

</feature>

<feature>

<featureName>mDBOverQuotaLimit</featureName>

<featureDescription>Prohibit Send</featureDescription>

<featureValue>22000</featureValue>

</feature>

<feature>

<featureName>mDBStorageQuota</featureName>

<featureDescription>Warning Size</featureDescription>

<featureValue>15000</featureValue>

</feature>

</planFeatures>

</plan>

</plans>

</procedureData>

<execute namespace="Hosted Exchange" procedure="CreateMailboxPlan" impersonate="1">

<executeData>

<preferredDomainController>playdev01.playdev.local</preferredDomainController>

</executeData>

<forEach name="plan" root="procedureData" path="plans/plan"/>

<before source="plan" destination="executeData" mode="merge"/>

</execute>

</procedure>

</request>

Once you save and submit the above MPF request, you’ll now have a plan that will consist of the following (as it relates to mailbox size and quotas):

  • Mailbox Size:20000 kb
  • Warning: 15000 kb
  • Restrict Send: 22000 kb
  • Restrict Send/Receive: 25000 kb

There are other useful settings that can be applied the exact same way as discussed in this document. Here is a brief list:

  • delivContLength – Restrict receiving message size
  • submissionContLength – Restrict sending message size
Additional Exchange related attributes can be set the same way we’ve done in this document. Here is a link to a page on Microsoft’s website that provides information on those attributes:
http://www.microsoft.com/technet/prodtechnol/exchange/guides/E2k3ADPerm/49ffafb3-20e2-4b8f-b694-1ec1ecad6e0b.mspx

Comments

No Comments

Leave a Comment

(required) 
(optional)
(required) 
Submit

About agramont

Conrad Agramont is focused on .NET Development, Virtualization, Windows 7, Windows Server 2008, Virtual Desktop, and Microsoft Business Productivity (Exchange, Office, Live Communications)
For more information on Conrad and Agramont Services, please visit: http://agramontservices.com
Follow Me On Twitter (@agramont)

This Blog

Syndication

News

Add to Technorati Favorites

Community Tools