Article ID: 11192, created on Mar 29, 2011, last review on Aug 7, 2015

  • Applies to:
  • Operations Automation

Symptoms


Provider installed Exchange 2010 into the same Active Directory domain with Exchange 2007 and at least one DC deployed on Windows Server 2008 exists in AD domain. The existing Exchange 2007 users cannot connect Outlook to their mailboxes, the error message "The name could not be resolved. The bookmark is not valid" is displayed.

Cause


Exchange 2007 SP2 and Exchange 2010 prefer attribute 'globalAddressList2' (when Exchange provide clients with GAL (GLobal Address List) list when they search it to check name) instead of 'globalAddressList' if both attributes are configured on container 'CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=hosterdomain,DC=com' and attribute 'globalAddressList2' is not empty. So, if Exchange 2010 installed in coexisting configuration with Exchange 2007 in the same AD domain then 'globalAddressList2' attribute (if exists) is not populated with existing GAL's Distinguished Names (DN). This lead to the error "The name could not be resolved. The bookmark is not valid" for the existing Exchange 2007 users.

Note that 'globalAddressList2' attribute exists in AD schema only if at least one DC deployed on Windows Server 2008 exists in AD domain.

Resolution


The solution is to copy items from 'globalAddressList' attribute of AD object 'CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=hosting,DC=local' into 'globalAddressList2'.

To copy items from 'globalAddressList' into 'globalAddressList2' the attached PowerShell script could be executed:
  1. Download script on MPS node.
  2. Execute command:
     
    %SystemRoot%\System32\WindowsPowerShell\v1.0\PowerShell.exe <location of downloaded script>\CopyGALs.ps1
 

Important: The script can process only the first 1500 records from 'globalAddressList'. For installations with more than 1500 Exchange organizations use "LDIFDE"  way below.


Also resolution could be achieved using the LDIFDE utility (http://support.microsoft.com/kb/237677/en-us):

  1. Export GAL DNs from globalAddressList attribute to the text file globalAddressList-export.txt:
     
    LDIFDE -p base -d "CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=hosterdomain,DC=com" -f globalAddressList-export.txt -l globalAddressList

    Important: replace 'DC=hosterdomain,DC=com' in the command above and everywhere in the article below with the actual name of Active Directory on PA installation.
     
  2. Prepare the import file.
     
    Open the globalAddressList-export.txt file created on the previous step, save it as globalAddressList2-import.ldf and modify it for import looking at this article and the example below.

    The changes that should be made:

    1. The first line(s) with 'dn: CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=hosterdomain,DC=com' remains unchanged

    2. Modify the line changetype: add
    to changetype: modify
    3. After the line 'changetype: modify' add one more line: replace: globalAddressList2
    4. In the next lines replace "globalAddressList:" with "globalAddressList2:"

    5. Add the following line at the end of the file (just one '-' character): -
    So if the original (exported) file looked like this:
    dn: CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=hosterdomain,DC=com
    changetype: add
    globalAddressList: CN=test01 Global Address List,CN=All Global Address Lists,CN=Address Lists Container,CN=Exchange Organization,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=hosterdomain,DC=com
    globalAddressList: CN=test02 Global Address List,CN=All Global Address Lists,CN=Address Lists Container,CN=Exchange Organization,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=hosterdomain,DC=com
    globalAddressList: CN=test03 Global Address List,CN=All Global Address Lists,CN=Address Lists Container,CN=Exchange Organization,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=hosterdomain,DC=com

    then after performed above modifications it will look like this:
    dn: CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=hosterdomain,DC=com
    changetype: modify
    replace: globalAddressList2
    globalAddressList2: CN=test01 Global Address List,CN=All Global Address Lists,CN=Address Lists Container,CN=Exchange Organization,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=hosterdomain,DC=com
    globalAddressList2: CN=test02 Global Address List,CN=All Global Address Lists,CN=Address Lists Container,CN=Exchange Organization,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=hosterdomain,DC=com
    globalAddressList2: CN=test03 Global Address List,CN=All Global Address Lists,CN=Address Lists Container,CN=Exchange Organization,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=hosterdomain,DC=com
    -

    Note that "-" symbol in the end of the file must be present.
     
  3. Import GAL DNs to the globalAddressList2 attribute
     
    LDIFDE -i -f globalAddressList2-import.ldf
     
  4. Check that import was performed correctly
     
    Run adsiedit.msc on AD Domain Controller, navigate to the 'Configuration' container, open the 'CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=hosterdomain,DC=com' object and compare values of the globalAddressList and globalAddressList2 attributes. They should be identical.

Attachments

5356b422f65bdad1c3e9edca5d74a1ae caea8340e2d186a540518d08602aa065 e12cea1d47a3125d335d68e6d4e15e07

Email subscription for changes to this article
Save as PDF