I had an interesting case about 3 weeks ago where a customer called in and they stated that they could see the data in the Active Directory while their Outlook client was in Online mode, however when they downloaded the OAB they could not.
What is so interesting about this particular case is that the customer created a new Outlook cached mode profile and connected to the Exchange server for the first time. When they did this they could see the data in the Assistant field on the General tab of the Address Book properties of a user, however when they logged off and downloaded the Offline Address Book this field was blank. We all know that Active Directory replication can sometimes get a bit complicated, so I want to elaborate a small bit on how Global Catalog servers handle attribute replication.
Each Global Catalog server contains commonly-searched attributes from all Naming Contexts of a forest. Every server has a full and write-able copy of its own domain. If that server is also a Global Catalog server, the remaining domains in the forest are held as read-only, partial copies. "Partial" means that only a subset of the attributes is kept. When a new attribute is added to the Global Catalog, it is added to the partial copy subset (partial attribute set). This causes the Global Catalog to perform a "full sync" of all the read-only copies again to repopulate itself with only the partial attributes that it needs to hold. This full sync occurs even if the attribute property isMemberOfPartialAttributeSet is set to "True." Thus, it only does a full sync on the read-only partial copy domains and not its own write-able domain, the configuration directory partition or schema directory partition. Removals from the Global Catalog are handled locally without replication.
Below is the break down on how attributes are included in the Global Catalog partition:
- An attribute is included in the Global Catalog if the partialAttributeSet property of attribute is set to TRUE in the schema Naming Context. When this property is first marked True, the attribute is replicated to each schema Naming Context. Each Domain Controller must make its Naming Contexts consistent with the schema by doing a full sync on the Global Catalogs.
- If the partialAttributeSet property is blank, the attribute is not included in the global catalog. If the partialAttributeSet property is set to FALSE, the attribute is marked to be removed from the Global Catalog.
- When the property is FALSE, the PartialAttributeDeletionList is set to TRUE until the attribute is removed from the Global Catalog. The PartialAttributeDeletionList is cleared on a per domain controller basis and does not update the USN number.
In the schema the attribute that populates the Assistant field is the msExchAssistantName attribute. NOTE: By default this attribute is not configured to replicate to the Global Catalog servers in the organization, therefore it will never end up in the Schema settings. As a result of this if the server that builds the Offline Address Book connects to DC/GC other than the one where the msExchAssistantName attribute was populated, the information will not be included in the Offline Address Book files.
In order to make sure that the Assistant field can be replicated to the other Global Catalogs, you must modify the schema. To modify the schema, an administrator must be made a member of the "Schema Admins" group. In addition to being a member of this group, a registry key must be set on the Schema master.
Pretty nasty huh?? So to correct this problem, you will need to configure the msExchAssistantName attribute to replicate in Active Directory Schema. Here is how you do it 🙂
Warning - Incorrectly editing the schema can cause serious problems that may require you to reinstall Exchange. Problems resulting from editing the schema incorrectly may not be able to be resolved, so before editing the schema, back up any valuable data.
- Open a command prompt
- Type the following without the quotation marks “regsvr32 schmmgmt.dll” . You should receive a pop stating the registration was successful.
- Close the command prompt window.
- Click Start
- Click Run
- Type in MMC and click OK
- Click on File
- Click on Add/Remove Snap-in
- Click the Add button and choose Active Directory Schema
- Click Add and then click Close
- Click OK
- Expand the Active Directory Schema and select the Attributes container
- Locate the msExchAssistantName attribute and right click it
- Select Properties
- Check the box next to “Replicate this attribute to the Global Catalog”
- Click OK
- Close the Active Directory Schema MMC
Rebuild your Offline Address Book:
- Open the Exchange System Manager
- Expand the Recipients container
- Highlight the Offline Address Lists container
- In the right hand window right click the Default Offline Address list and choose “Rebuild”
- Click “Yes” on the pop-up window:
After the Offline Address Book has been rebuilt have the Outlook client force another download of the OAB:
- Open Outlook and connect it to the Exchange server
- Choose Tools/Send and Receive/Download Address Book
- Make sure the “Download changes since last Send/Receive” is unchecked
- Make sure “Full Details” option is selected (default)
- Make sure “Choose address book:” is “\Global Address List”
- Click OK
- After the download is complete you can disconnect the Outlook client and verify that the Assistant field is now populated.
I want to thank Mark Swain for implementing the action plan when I was swamped 🙂