In the old days when using Exchange 2007 for hosting scenarios you would use the Configuring virtual organizations and address list segregation in Exchange 2007 whitepaper. In Exchange 2007 the msExchQueryBaseDN property on a mailbox was used to limit the search scope of users in OWA. The typical setting of this property is the OU where the users would reside in Active Directory.
The msExchUseOAB property on a mailbox is used to select an Offline Address Book in a hosting environment (where multiple OAB exist of course). This way the user would receive the OAB of his particular organization.
In Exchange 2010 things are completely different and the above mentioned properties are no longer used in a shared environment. In Exchange 2010 SP1 /hosting a dedicated mechanism was used, but the /hosting option is deprecated. In Exchange 2010 SP2 the Address Book Policies are introduced and the ABP mechanism makes sure the use receives the correct Address Lists, including the Offline Address Book.
Recently I ran into a situation where the shared environment was originally built on Exchange 2007 but later on migrated to Exchange 2010 SP2 using ABP’s. Several users were complaining about empty Global Address Lists and empty OAB’s. It turned out that these users still had the msExchQueryBaseDN and msExchUseOAB property set. This resulted in erratic behavior when it comes to address lists. After clearing the msExchQueryBaseDN and msExchUseOAB properties on a few mailboxes these were behaving properly.
To clear these properties on all mailboxes in Active Directory the following cmdlets can be used:
Get-Mailbox –ResultSize Unlimited | ForEach {$o=[ADSI]("LDAP://"+$_.distinguishedName);$o.PutEx(1,"msExchQueryBaseDN",0);$o.SetInfo()} Get-Mailbox –ResultSize Unlimited | ForEach {$o=[ADSI]("LDAP://"+$_.distinguishedName);$o.PutEx(1,"msExchUseOAB",0);$o.SetInfo()}
More information on the Address List segregation please check the whitepaper. For your convenience this is stored as a PDF document.
Special thanks for Michel de Rooij.