介绍

 

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,用户是被允许看到的。

自定义地址列表

部署完 Exchange 2007 后,会有一个默认的GAL 和 5 个自定义的地址列表,如下图。


Figure  1: 内置的地址列表

默认情况下,认证的用户有 Read 和 Open 地址列表的权限。用 Adsiedit 可以查看并更改这些权限,打开Configuration Partition ,CN=Services, CN=Microsoft Exchange, CN=your Exchange organization, CN=Address Lists Container, CN=All Address Lists。


Figure 2: CN=All Address Lists


Figure 3: 内置地址列表的安全选项

我们可以创建新的地址列表,更改现有的地址列表,删除自定义的和内置的地址列表。

新建一个新的地址列表

你可以使用 管理控制台或者Management Shell来创建新的地址列表,cmdlet New-Addresslist 可以使用参数 RecipientFilter 根据属性来筛选收件人

使用管理控制台

打开管理控制台,组织配置,邮箱,选地址列表,右键点击空白,选择创建新的地址列表,如下图


Figure 4: 新建地址列表

你要起个名字,选择那些邮件人会被包含在地址列表里


Figure 5: 名字和收件人类型

 

点下一步,你可以选择满足条件的收件人。在下面得例子中,选择所有在EMEA地区的员工,这样所有启用邮箱,属性State/Province 值是EMEA的员工都被包含进来。


Figure 6:  地址列表的条件

然后你要指定地址列表什么时候被应用,也可以设定允许运行的最长时间。


Figure 7: 设定地址列表的时间

然后,Exchange 会给你一个总结,点击 New 之后,新的地址列表就被创建了。


Figure 8: New Address List Summary


Figure 9: 完成创建新的地址列表

你可以看到地址列表出现在管理控制台中和用户地址薄中。


Figure 10: 新地址列表被创建


Figure 11: 地址列表在Outlook 中

 

当你更改一个用户的属性,想把他加入地址列表中时,当你创建一个新的收件人的时候,你要更新地址列表。下面的示例中,我们把一个用户 Ilse Van CriekingeState/Province 属性改为EMEA,然后更新地址列表。

在图12中,你可以看到省份/地区的值,已经更改了。在图13中,你可以看到地址列表时怎样被更新的。


Figure 12: 更改用户属性


Figure 13: Update-AddressList

当然你也可以用管理控制台来更新地址列表。


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

编辑地址列表

 

你可以随时更改地址列表的条件,使用控制台和shell都可以。在管理控制台中,右键点击你要更改的地址列表,然后选编辑(会打开编辑地址列表的向导)。在下面的示例中,你会看到地址列表 All Employees Located in EMEA Region (所有在EMEA的员工) 会包含所有有邮箱的用户和启用了邮件地址的用户。


Figure 15: 编辑地址列表


Figure 16: 编辑地址列表 - 条件


Figure 17: 编辑地址列表 - 条件


Figure 18: 编辑应用时间


Figure 19: 编辑地址列表 - 配置摘要


Figure 20: 编辑地址列表 - 完成

Prevent Users from Opening an Address List 放置用户打开地址列表

要想防止用户打开一个地址列表,我们要用前面提到的两个权限。默认情况下,任何一个新建的地址列表,认证的用户都有读和打开的权限。你可以创建一个组,并给这个组拒绝读和打开的权限 来防止用户打开地址列表。


Figure 21: 拒绝读和打开地址列表

当属于这个通用组的人试图打开地址列表的时候会发现以下错误。


Figure 22: 书签不可用

如果你不想让用户知道这个地址列表的存在,你可以创建一个父的地址列表,把新建的地址列表放进去。然后在父地址列表上设拒绝访问权限,用户就不会看到有这个地址列表了

删除一个地址列表

删除地址列表也可以使用Shell或管理控制台。


Figure 23: 删除地址列表

你需要确定删除


Figure 24: 确定删除地址列表

如果不删除子地址列表,父地址列表就无法删除。