Novell Home

Tip: Using Microsoft Exchange Rules

Novell Cool Solutions: Tip
By William C Schneider

Digg This - Slashdot This

Posted: 17 Feb 2005
 

Problem

In a large implementation of Microsoft Exchange, you may have numerous databases, information stores, and virtual servers. In our environment we have 24 different databases the user may encounter, based on the first initial of the givenName attribute. The default rules for Exchange will configure a task for modify and a task for add, which in our environment means a possibility of 48 rules to be processed. This is a waste of processing time (although it does a very good job of filling up our log files ...)

Solution

  1. Break the Exchange rules into two separate policies in the Subscriber Command Transform.
  2. Create a rule at the beginning of each policy to test for the mandatory attributes that are common on each rule and break the policy if needed.
  3. Add each of the rules for each database with a minimum amount of additional conditions.

Example, Policy 1: Exchange 2000, User Add

Decide if Policy Needed 
Conditions: 
if operation not equal "add" 
OR if class name not equal "User" 
OR if operation attribute 'mailforwardingaddress' not-match ".*@uthouston.edu" 
OR if global configuration value 'support-x2k' equal "false" 
OR if operation attribute 'mailforwardingaddress' not-match ".*@uthouston.edu" 
Actions: 
Break() 
Define Exchange 2000 Attribute on User Add (First Name A) 
Conditions: 
if source attribute 'Given Name' match "a.*" 
Actions: 
add destination attribute value("homeMDB",class name="User","CN=A (VS1),
CN=First Storage Group,
CN=InformationStore,CN=VS1,CN=Servers,CN=First Administrative Group,
CN=Administrative Groups,CN=MYDOMAIN,
CN=Microsoft Exchange,CN=Services,CN=Configuration,
DC=somedomain,DC=com") 
add destination attribute value("mailNickname",class name="User",
Source DN(length="1",start="-1")) 
break() 

Repeat the rule above for each database ...

Example, Policy 2: Exchange 2000, User Modify

Decide if Policy Needed 
Conditions: 
if class name not equal "User" 
OR if operation not equal "modify" 
OR if operation attribute 'mailforwardingaddress' not-match ".*@uthouston.edu" 
OR if global configuration value 'support-x2k' equal "false" 
OR if destination attribute 'msExchHomeServerName' available 
OR if destination attribute 'legacyExchangeDN' available 
OR if destination attribute 'homeMTA' available 
OR if destination attribute 'homeMDB' available 
Actions: 
Break() 
Define Exchange 2000 Attribute on User Modify (First Name A) 
Conditions: 
if source attribute 'Given Name' match "a.*" 
Actions: 
Set destination attribute value("homeMDB",class name="User","CN=A (VS1),
CN=First Storage Group,CN=InformationStore,CN=VS1,CN=Servers,
CN=First Administrative Group,CN=Administrative Groups,CN=MYDOMAIN,
CN=Microsoft Exchange,CN=Services,CN=Configuration,
DC=somedomain,DC=com") 
Set destination attribute value("mailNickname",class name="User",
Source DN(length="1",start="-1")) 
break() 

Repeat the rule above for each database ...

These rules use a minimum of queries to the directories, and processing these rules is more efficient. Simply breaking the default policy into two policies reduces the number of rules to be evaluated at a time in half.

Setting Default Rules

It may be desirable in your organization to also set some default Exchange rules, such as setting the user to use the mailbox store default limits. To do this, create a rule on your Output Transform of the subscriber channel as follows:

Conditions:
if operation attribute 'homeMDB' available
Actions:
set destination attribute value("mDBUseDefaults","TRUE")

This will add the necessary attribute to the current operation, if a mailbox is being provisioned. You could just as easily set a higher limit based on a users title in this same manner. For instance, if you want all Vice Presidents to have a 500 MB mailbox limit, you could use a rule like this one:

Conditions:
if operation attribute 'homeMDB' available
and if source attribute ?title' equal ?Vice President?
Actions:
set destination attribute value("mDBUseDefaults","FALSE")
set destination attribute value("mDBStorageQuota","400000")
set destination attribute value("mDBOverQuotaLimit","450000")
set destination attribute value("mDBOverHardQuotaLimit ","500000")

This rule would allow the user to receive up to 500 MB of mail. It would warn the user at 400 MB that the limit is approaching, restrict the ability to send messages at 450 MB, and finally limit the ability to send and receive messages at 500 MB.


Novell Cool Solutions (corporate web communities) are produced by WebWise Solutions. www.webwiseone.com

© 2014 Novell