Exchange Provider::CreateGlobalAddressList

The CreateGlobalAddressList method creates a Global Address List (GAL) and applies permissions. To accomplish this, the method performs the following steps:

  1. Creates the global address list in the GAL container.

  2. Sets the default purportedSearch attribute, if it is not specified in the filter parameter.

    Note

    The purportedSearch attribute is used by the Recipient Update Service (RUS) to stamp the showInAddressBook attributes of users. In a hosted environment, the domain RUS should be off, in which case the purportedSearch attribute does not apply. However, the purportedSearch attribute is still set in case the RUS is ever turned on, so that filters and entries in the showInAddressBook attribute still persist.

  3. Grants the following permissions to the principals specified in <readAccess>:

    • Read

    • Execute

    • Read Permissions

    • List Contents

    • Read Properties

    • Open Address List

  4. Sets the new address list as an otherWellKnownObjects attribute on the organization, using the value: WKGUID=89FB25B7DF784fc198A493E2E8A0EE7E.

  5. Adds the new GAL to the globalAddressList attribute of the Microsoft Exchange configuration container.

Arguments

Input argument Required Description

Path

Yes

The Lightweight directory access protocol (LDAP) path of the organization

Name

No

The name of address list. Default is RDN of the organization.

ReadAccess

No

The groups and users that have read access to the address list. This is a multi-value parameter that can be specified as an LDAP path, a DN, a UPN, or DOMAIN\SAMAccount, as shown in the following examples:

<readAccess>LDAP://server/cn=johnc,ou=litware,dc=fabrikam,dc=com 
</readAccess> 
<readAccess>LDAP://cn=johnc,ou=litware,dc=fabrikam,dc=com</readAccess> 
<readAccess>cn=johnc,ou=litware,dc=fabrikam,dc=com</readAccess> 
<readAccess>johnc@litware.com</readAccess> 
<readAccess>fabrikam\johnc</readAccess> 

Filter

No

The purportedSearch attribute of the address list. When using the Filter parameter, be sure to properly escape the characters in the XML. The escape characters for & are & including the semicolon. For example:

<filter>(&amp;(mailNickName=*)(userPrincipalName=*litware.com)) 
</filter> 

The default for purportedSearch is:

purportedSearch = (&(mailNickName=*)(!(msExchHideFromAddressLists=TRUE))(otherWellKnownObjects=B:32:B7AE2ABCCBAD41a28973559FCA154DB0:OU=litware,OU=consolidatedmessenger,DC=fabrikam,DC=com)(|(&(objectCategory=person)(objectClass=user))(&(objectCategory=person)(objectClass=contact)) 
(objectCategory=group)(objectCategory=publicFolder))) 

Remarks

Rollback Calls

The CreateGlobalAddressList method calls the DeleteGlobalAddressList method on transaction rollback.

Sample Code

Example XML Request

No example XML request.

Example XML Response

No example XML response.

Applies To

Exchange Provider API for:

  • Hosted Messaging and Collaboration version 3.5

  • Hosted Messaging and Collaboration version 3.0

See also

Tasks

Exchange Provider::DeleteGlobalAddressList