介绍

 

Exchange的地址列表是地址的集合,能被不同的Exchange收件人浏览。一个地址列表,要么是全球地址列表,要么是自定义的地址列表或者一个脱机地址列表。第一部分将讨论全球地址列表,下面的一节,我们讨论自定义的地址列表,以及如何创建和管理他们,最后来看看有关脱机地址列表的信息。

Global Address Lists全球地址列表

当你安装Exchange的时候,会得到一个全球地址列表(GAL), 被叫做默认GAL,这是一个组织中所有邮箱的集合,有邮箱用户,联系人,动态分发组,启用邮件的组,启用邮件的公共文件夹和系统邮箱,看下图。


Figure 1: 地址列表概览

创建新的地址列表= New-GlobalAddressList

如果你想创建额外的全球地址列表(GALs),有几点你要知道

  • 只能用Exchange Management Shell 来创建,更改,更新,或者删除GALs.

  • 如果你有多个GAL,只能有一个会显示在outlook 地址列表中,Outlook中会显示全球地址列表,而不是你使用的那个名字。

  • 当一个用户属于多个地址列表的时候,它会使用包含比较多信息的那个,当然他要有读的权限才行。

创建多个地址列表的一个原因是Exchange组织要支持多个公司,你想让每个公司只能看到自己公司收件人的地址列表。

 

我们要用cmdlet New-GlobalAddressList创建GAL,使用参数 name,指定名字,然后可以用下面的参数来定义GAL。

  • ConditionalCompany

  • ConditionalCustomAttribute1-ConditionalCustomAttribute15

  • ConditionalDepartment

  • ConditionalStateOrProvince

  • IncludedRecipients, needs to be added when RecipientFilter is not defined (possible values = "None", "MailboxUsers", "Resources", "MailContacts", "MailGroups", "MailUsers", "AllRecipients")

  • RecipientFilter, cannot be used if parameters ConditionalCompany, ConditionalCustomAttribute1-15, ConditionalDepartment, and/or ConditionalStateOrProvince have been specified

  • TemplateInstance

 

下图中,你能看到怎么使用cmdlet来创建两个新的GAL,第一个叫"Community Day Attendees",基于CustomAttribute3和 Title 来创建, 第二个叫"Community Day Organizers",只是基于CustomAttribute3 创建的。


Figure 2: New-GlobalAddressList

从下图中你能看到新创建的GAL被显示在管理界面中


Figure 3: 新地址列表在管理控制台中

 

创建完一个新的GAL后,它并不会被populated ,我们要使用cmdlet Update-GlobalAddressList来对他进行更新。

Update-GlobalAddressList

你要使用 cmdlet Update-GlobalAddressList 来:

  • 填充一个新的GAL;

  • 删除已经不符合条件的收件人

  • 加入符合条件的收件人

  • 填充经过更改的GAL.

 

前面的例子中,我建了一个新的GAL,叫“Community Day Organizers” ,我们可以用cmdlet很容易得到GAL中的收件人列表。在更新收件人列表前,你可以从下图中看到GAL 是空的,当更新后,就可以看到GAL被填充了。


Figure 4: Update-GlobalAddressList

 

当运行 cmdlet Update-GlobalAddressList 时,Exchange 会更新AD中每个收件人信息,进而反映它是GAL的成员,更新的这个属性叫 showInAddressBook。下图中你可以看到用户 A 仅出现在 默认的GAL和 ALL users 中,当我们更新了 GAL Community Day Attendees 后,就可以看到这个属性中包含了 Community Day Attendees


Figure 5: 使用Update-GlobalAddressList 更新前的用户A的属性


Figure 6: Update-GlobalAddressList


Figure 7: 使用Update-GlobalAddressList后,用户A的属性showInAddressBook

全球地址列表的权限

 

就像我们开始说的,尽管有多个GAL,但是每个用户在Outlook或OWA中只能看到一个,为了保证用户可以看到它应该看到的GAL,你可以使用 adsiEdit.msc 或 Exchange Management Shell 在GAL上设置权限,

 

我的Exchange组织中,有3个GAL,表1显示了谁应该得到哪个GAL

 

GAL 名称包含收件人不属于Community Day Attendees属于Community Day Attendees属于Community Day Organizers
默认GAL所有收件人

X

  

Community Day Attendees

所有参与者 

X

 

Community Day Organizers

所有参与者和组织者  

X

Table 1: GAL 权限

你可以使用 AdsiEdit 移除 Community Day Attendees 打开 默认GAL 和 Community Day Organizers 的权限。打开AdsiEdit 连接上 Configuration Partition,依次找到 Configuration, Services, Microsoft Exchange, Name of your organization, Address Lists Containers, All Global Address Lists。右键选择要更改的 GAL,更改它的权限。


Figure 8: 通过权限阻止打开地址列表

 

如果要使用Exchange Management Shell ,我们要用到cmdlet Set-ADPermission. 下图中你可以看到如何通过cmdlet 阻止通用列表组 Community Day Attendees 打开GAL Community Day Organizers.


Figure 9: Add-ADPermission

 

当用户A登陆到域,打开Outlook,它会看到 GAL Community Day Attendees。属于组 Community Day Organizers 的用户则可以看到 GAL Community Day Organizers,那些不属于这两个组的用户会使用默认的 GAL。


Figure 10: GAL User A

OWA和多个GAL

 

当在OWA中打开 用户A的邮箱时,你会发现 用户A 可以看到所有的 GAL,如下图。


Figure 11: GALs in OWA

像知识库文档 817218 说的,不管在地址列表上设置的权限如何,在OWA中你都可以看到AD中所有的地址列表。为了阻止用户看到他不应该看到的地址列表,我们可以使用 Adsiedit 设置用户属性 msExchQueryBaseDN ,默认情况下没有设置 <not set>,你可以设置为你想让用户看到的那个GAL。


Figure 12: msExchQueryBaseDN

 

从下图中可以看到用户A登陆OWA后只能看到一个GAL了。


Figure 13: Custom GAL in OWA

Remove-GlobalAddressList

可以使用cmdlet remove-GlobalAddressList 来删除 GAL

  • 如下图看到的,你不能删除默认的GAL。


Figure 14: Remove-GlobalAddressList

  • 你要保证至少有一个GAL,用户是被允许看到的。