Search Engine: Elastic

Article ID: 111617, created on Jul 11, 2011, last review on Jul 14, 2018

  • Applies to:
  • Operations Automation 5.3
  • Operations Automation 5.2

Important: If Exchange 2007 is deployed, then you must apply the additional step described at the end of the article after Exchange 2010 subscriptions are fixed!

Important: Instructions from this KB can be applied only in POA 5.2 (from Update 3) and 5.3. In POA with version 5.4 or a later version, the attribute msExchQueryBaseDN cannot be updated via Exchange_ctl. Please upgrade Exchange 2010 to SP1/SP2 and clear the msExchQueryBaseDN attribute before upgrading to POA 5.4.


After installing Exchange 2010 Service Pack 1 or a later version, offline and/or online address books are empty in Outlook. See the following screenshot:


POA uses the msExchQueryBaseDN attribute to limit a user’s scope of the global address book and address searches.

With Exchange 2010 SP1, the following unexpected behavior is encountered in Outlook when the msExchQueryBaseDN attribute is set:
  • The OWA application will show the default global address with elements from the configured msExchQueryBaseDN attribute downward.
  • Outlook 2007/2010 will show an empty global address list; other global address lists will be invisible.
Searching the address book in OWA will work; in Outlook, it will not work because Outlook will think the address list is empty.


Important: If Exchange 2007 is deployed, then you must apply the additional step described at the end of the article after Exchange 2010 subscriptions are fixed!

POA 5.2 update 03 creates mailboxes with the correct value for the msExchQueryBaseDN attribute by default. All existing mailboxes created before POA 5.2 update 03 should be fixed manually. It is possible to fix the mailboxes on all Exchange 2010 subscriptions, or only the mailboxes of one subscription.

Note: A lot of tasks will be scheduled while executing Exchange_ctl for all subscriptions ("subscription_id" parameter equals "0") and POA Task Manager will be quite busy for some time. Use the Exchange_ctl utility when the load on the POA Management Node is low to prevent any failures.

The following sample is used to clear the msExchQueryBaseDN attribute for all mailboxes of subscription 1000111.

On POA for Linux Management Node, execute the following command:
cd /usr/local/pem
. ./bin/
./bin/Exchange_ctl -f etc/pleskd.props sc dumpMsExchQueryBaseDn 1000111 CLEAR 2010

Note: To see utility usage, execute the following command:
./bin/Exchange_ctl -f etc/pleskd.props sc

On POA for Windows Management Node, execute the following command:
cd C:\Program Files\SWSoft\PEM
bin\Exchange_ctl -f etc\pleskd.props sc dumpMsExchQueryBaseDn 1000111 CLEAR 2010

Note: To see utility usage, execute the following command:
bin\Exchange_ctl -f etc\pleskd.props sc

After checking the workaround on one subscription as described above, apply it to all existing Exchange 2010 subscriptions:
./bin/Exchange_ctl -f etc/pleskd.props sc dumpMsExchQueryBaseDn 0 CLEAR 2010

Note: If the solution above was applied after upgrading to Exchange 2010 SP1, and then the Exchange installation was upgraded to SP2 or later, it is not necessary to apply the solution again.

Important: If Exchange 2007 is deployed, then additional steps must be executed in order to correct Exchange 2007 subscriptions.

Check if Exchange 2007 is deployed in POA:
  • Log in to POA Provider Control Panel
  • Go to System Director > Configuration Manager > Services
  • Filter packages by the following condition: Name = Exchange2007*

If you see Exchange2007 services (e.g., Exchange2007Mailstore, Exchange2007OAB, Exchange2007Protocols, etc.), this means that the additional steps outlined below must be performed.

1. Prepare a file with the list of Exchange 2007 customers' Active Directiory OUs (Organizational Units):

Get the list of AD OUs created for subscriptions with Exchange 2007 from the POA system database using the following query:SELECT org_ldap_path FROM exch_domain_services WHERE exchange_version = '2007'
The query will provide the list of full LDAP paths of OUs like this:OU=S001000653,OU=Provider,OU=Microsoft Exchange Hosted Organizations,DC=hosting,DC=local
OU=S000000793,OU=Provider,OU=Microsoft Exchange Hosted Organizations,DC=hosting,DC=local
OU=S000000795,OU=Provider,OU=Microsoft Exchange Hosted Organizations,DC=hosting,DC=local
OU=Customer Inc,OU=Provider,OU=Microsoft Exchange Hosted Organizations,DC=hosting,DC=local
OU=John Doe Inc,OU=Provider,OU=Microsoft Exchange Hosted Organizations,DC=hosting,DC=local

Extract only short names of OUs from the list above so that the final list of OUs looks like this:S001000653
Customer Inc
John Doe Inc

Save the list of OUs as the subs.txt file.

2. Upload the subs.txt file on any Exchange 2007 server and log in to this server using RDP.

3. Run the following command in the Exchange Management Shell on the Exchange 2007 server where the subs.txt file was uploaded: type subs.txt | ForEach-Object {$customAttr =$_; write-host "Processing" $customAttr; get-mailbox -OrganizationalUnit $customAttr | foreach-object{ $dn = "LDAP://" + $_.distinguishedname; $aldn = (get-addresslist ($customAttr + " AL")).DistinguishedName; $user = ([ADSI]$dn).psbase; $user.Properties["msExchQueryBaseDN"].Value = $aldn; $user.CommitChanges(); write-host "user" $_.Name "has" $user.Properties["msExchQueryBaseDN"].Value}}
  1. The command above must be executed as a single command, without any line breaks.
  2. It is better to install Support Tools Pack on the Exchange 2007 host and use the utility "cat.exe" instead of the built-in Windows utility, "type."


5356b422f65bdad1c3e9edca5d74a1ae caea8340e2d186a540518d08602aa065 c2898cda1192c88ccc616ade5f670bd6 2554725ed606193dd9bbce21365bed4e a8cdca46e4357a6e38fded820770e272 e12cea1d47a3125d335d68e6d4e15e07

Email subscription for changes to this article
Save as PDF