Exchange的地址列表是地址的集合,能被不同的Exchange收件人浏览。一个地址列表,要么是全球地址列表,要么是自定义的地址列表或者一个脱机地址列表。第一部分将讨论全球地址列表,下面的一节,我们讨论自定义的地址列表,以及如何创建和管理他们,最后来看看有关脱机地址列表的信息。
Global Address Lists全球地址列表当你安装Exchange的时候,会得到一个全球地址列表(GAL), 被叫做默认GAL,这是一个组织中所有邮箱的集合,有邮箱用户,联系人,动态分发组,启用邮件的组,启用邮件的公共文件夹和系统邮箱,看下图。
Figure 1: 地址列表概览
如果你想创建额外的全球地址列表(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中打开 用户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
可以使用cmdlet remove-GlobalAddressList 来删除 GAL
如下图看到的,你不能删除默认的GAL。
Figure 14: Remove-GlobalAddressList
你要保证至少有一个GAL,用户是被允许看到的。