了解通讯簿策略
适用于: Exchange Server 2010 SP2, Exchange Server 2010 SP3
上一次修改主题: 2016-11-28
全局地址列列表 (GAL) 分段(也称为 GAL 划分)是管理员可以用来将用户分割到特定的组中以提供其组织 GAL 的自定义视图的过程。在 MicrosoftExchange Server 2007 及更早版本中,GAL 分段很复杂,需要您使用查询基本 DN(相当于目录搜索的一个根)或访问控制列表 (ACL) 来允许或拒绝对每个地址列表的访问。有关如何在 Exchange 2007 中配置 GAL 分段的详细信息,请参阅在 Exchange 2007 中配置虚拟组织和地址列表分割。
为了简化该过程,MicrosoftExchange Server 2010 Service Pack 2 (SP2) 引入了通讯簿策略 (ABP)。在创建 ABP 时,可以为策略指定一个 GAL、一个脱机通讯簿 (OAB)、一个房间列表以及一个或多个地址列表。然后,可以将 ABP 指定给邮箱用户,向他们提供对 Outlook 和 Outlook Web App 中的自定义 GAL 的访问权限。目的是提供一种更简单的机制为需要多个 GAL 的内部部署组织实现 GAL 分段。
注意: |
---|
ABP 用于优化每个用户组的 GAL,而不是让他们相互无法看到或解决组织中的其他用户。ABP 仅创建虚拟的用户分割,而不是合法的分割。 |
重要说明: |
---|
ABP 在 Office 365 中不可用。因此,如果您采用了混合部署,则具有基于云的邮箱的用户将可以看到整个通讯簿。 |
ABP 的工作方式
ABP 包含以下列表:
一个 GAL
一个 OAB
一个房间列表(用于预定)
一个或多个地址列表
在下图中,通讯簿策略 A 包含组织中存在的各种地址对象的一个子集(在图的下部显示)。ABP 的结果范围等于策略中包含的 GAL(在本例中为 GAL1)的范围。在创建了 ABP 并将其分配给用户之后,ABP 中的地址对象将成为用户可查看的对象的范围。
可以使用以下方法将 ABP 分配给单个邮箱用户:
新建的还是现有的邮箱? | 命令行管理程序 | Exchange 管理控制台 |
---|---|---|
新建 |
New-Mailbox cmdlet 和 AddressBookPolicy 参数 |
新建邮箱向导中的“邮箱设置”选项卡 |
现有 |
Set-Mailbox cmdlet 和 AddressBookPolicy 参数 |
邮箱属性页中的“邮箱设置”选项卡 |
ABP 会在用户的客户端应用程序连接到客户端访问服务器上的 Microsoft Exchange 通讯簿服务时生效。如果您更改了 ABP,则更新后的 ABP 要在用户重新启动 OutlookOutlook Web Access 后或者在您重新启动 Microsoft Exchange 通讯簿服务后才会生效。若要了解详细信息,请参阅了解通讯簿服务。
Entourage、Outlook for Mac 和 ABP
ABP 不适用于连接到公司网络的 Entourage 用户或 Outlook for Mac 用户。在公司网络内部时,Entourage 和 Outlook for Mac 客户端会直接连接到全局目录服务器,并直接查询 Active Directory,而不使用 Microsoft Exchange 通讯簿服务。但是,通过 Internet 连接的 Outlook for Mac 2011 客户端可以使用 OAB 或 Exchange Web 服务 (EWS)。因此,这些客户端可以查看基于分配的 ABP 的 GAL。有关管理 Outlook for Mac 2011 的详细信息,请参阅针对 Outlook for Mac 2011 进行规划
部署 ABP
本部分提供有关在组织中部署 ABP 的信息,包括最佳实践、方案和一般步骤。若要查看所有 ABP 管理任务,请参阅管理通讯簿策略。
注意事项和最佳实践
在组织中设置 ABP 时需要考虑以下事项:
为了使 ABP 正常工作,您要向其应用 ABP 的用户邮箱必须在 MicrosoftExchange Server 2010 SP2 服务器上。
不要在全局目录服务器上运行客户端访问服务器角色。这样做将导致 Active Directory 被用于名称服务提供程序接口 (NSPI),而不是用于 Microsoft Exchange 通讯簿服务。
不能同时使用分层通讯簿 (HAB) 和 ABP。有关 HAB 的详细信息,请参阅了解分层通讯簿。
任何分配有 ABP 的用户都应存在于自己的 GAL 中。
如果允许客户端应用程序直接通过 LDAP 访问 Active Directory,则它们将绕过 ABP 中内置的逻辑。因为 Outlook 2011 和 Entourage 2008 使用直接 LDAP 查询访问 Active Directory,因此,如果自动发现服务为这些客户端应用程序指定或提供了域控制器或全局目录服务器,则它们将不会正常使用 ABP。Outlook 2011 可以使用 EWS 或本地 OAB 来访问目录信息。但是,如果 Outlook 2011 可以直接访问 LDAP 服务,它将不会尝试这样做。
ABP 中使用的 GAL 必须至少包含 ABP 中定义和指定的所有地址列表(包括房间地址列表)。不要创建包含的对象数少于同一 ABP 中任何地址列表的 GAL。
我们建议创建不会跨越虚拟组织边界的通讯组。创建包含多个虚拟组织的成员的通讯组会导致以下问题:
如果组成员在向通讯组发送邮件时请求送达或已读回,他们将可以看到属于其他虚拟组织的组成员的电子邮件地址
如果向通讯组发送加密邮件,并且有些组成员没有有效的数字 ID,则发件人将收到警告消息,其中包括没有有效ID 的成员总数及其电子邮件地址的列表。但是,如果没有有效数字 ID 成员中的有些成员所在的组织与发件人不同,则警告消息将包括正确的计数,但不包括其他组织中的成员的电子邮件地址。因此,总数与成员地址列表会不匹配。
例如,如果某个通讯组总共含有来自两个组织(机构 A 和机构 B)的五个成员。三个组成员来自机构 A,并且其中一个成员具有无效的数字 ID。其他两个成员来自机构 B,并且他们的数字 ID 均无效。如果来自 Agency A 的某个成员向通讯组发送了一封加密邮件,则该成员将收到一条警告消息,指示总共有三个收件人没有有效的数字 ID。但是,警告消息中将仅列出来自 Agency A 的收件人的电子邮件地址。
ABP 不适用于 Get-Group cmdlet。因此,可以运行 Get-Group 的任何用户或进程都会看到其有权访问的任何组的所有成员。
我们建议修改 Exchange 控制面板 (ECP) 的组管理设置,使用户无法使用 ECP 来管理组。若要防止用户使用 ECP 来管理组,请将用户从 MyDistributionGroupMembership RBAC 角色中排除。有关详细信息,请参阅 MyDistributionGroupMembership 角色和禁止用户创建通讯组。
如果允许用户使用 Outlook 或 Outlook Web App 来管理组,则组的所有者必须可以全权查看组成员资格列表。
所有 ABP 都必须包含一个房间地址列表。但是,如果组织不使用房间地址列表,则可创建一个空的默认房间地址列表。
部署 ABP 不会阻止一个虚拟组织中的用户向另一个虚拟组织中的用户发送电子邮件。如果要阻止用户跨组织发送电子邮件,我们建议创建一条传输规则。例如,若要创建一条传输规则以阻止 Contoso 用户接收来自 Fabrikam 用户的邮件,但仍允许 Fabrikam 的高级领导团队向 Contoso 用户发送邮件,请运行以下命令行管理程序命令:
New-TransportRule -Name "StopFabrikamtoContosoMail" -FromMemberOf "AllFabrikamEmployees" -SentToMemberOf "AllContosoEmployees" -DeleteMessage -ExceptIfFrom seniorleadership@fabrikam.com
若要了解详细信息,请参阅创建传输规则。
如果要在 Lync 客户端中强制执行 ABP,则可对特定的用户对象设置
msRTCSIP-GroupingID
属性。有关详细信息,请参阅 PartitionByOU 被替换为 msRTCSIP-GroupingID 主题。
部署方案
以下三个方案描述了三种不同组织类型的可能部署解决方案。虽然还有许多其他方案,但此处所介绍的是最常见的方案。这些方案中的地址列表和 GAL是根据将对象按逻辑分组的筛选器(如“自定义属性”)创建的。
情形 1:两个单独的公司,一个 Exchange 组织
此方案适用于拥有具备以下特点的单独机构、分支或部门的公司:
在同一个 Exchange 组织内。
没有共同的职员。
没有共同的公用报告链。
此外,这些机构、分支或部门没有任何特殊的安全或隐私问题。
在此方案中,使用以下设置创建了两个 ABP:
查看 GAL 或通讯组成员资格的职员只能看到其所在公司中的收件人。
没有跨越两家公司的通讯组。
下表列出了包括在 Contoso 和 Humongous Insurance 的 ABP 中的地址列表、GAL、房间列表和 OAB。ABP 组件是通过使用 CustomAttribute15 参数将对象进行分组而创建的。因为两家公司是独立的,相互之间没有任何交互,因此没有任何共同的地址列表。
ABP 组件 |
Contoso |
Humongous Insurance |
地址列表 |
AL_CON_Groups AL_CON_Users_DGs AL_CON_Contacts |
AL_HI_Groups AL_HI_Users_DGs AL_HI_Contacts |
GAL |
GAL_CON |
GAL_HI |
房间列表 |
AL_CON_Rooms |
AL_HI_Rooms |
OAB |
OAB_CON |
OAB_HI |
情形 2:共有一个 CEO 的两家公司
此方案适用于具有以下特点的公司:
在同一个 Exchange 组织内。
共有同一个 CEO。
没有共同的职员。
在此方案中,使用以下设置创建了三个 ABP:
查看 GAL 或通讯组成员资格的职员只能看到其所在公司中的收件人。
在每家公司中,有一个名为 SeniorLeaders 的通讯组,其中包括该公司的高级领导者和共有的 CEO。
查看 CEO 的组成员资格的职员只能看到其所在公司中的组。
创建了三个 ABP:Fabrikam、Tailspin Toys 和 CEO。
ABP 组件 |
Fabrikam |
Tailspin Toys |
CEO |
地址列表 |
AL_FAB_Users_DGs AL_FAB_Contacts |
AL_TAIL_Users_DGs AL_TAIL_Contacts |
AL_FAB_Users_DGs AL_FAB_Contacts AL_TAIL_Users_DGs AL_TAIL_Contacts |
GAL |
GAL_FAB |
GAL_TAIL |
默认 GAL |
房间列表 |
AL_FAB_Rooms |
AL_TAIL_Rooms |
默认所有房间 |
OAB |
OAB_FAB |
OAB_TAIL |
默认 OAB |
如果将 CEO 添加到每家公司的通讯组中,并且 CEO 在每家公司的 ABP 的范围内,则 CEO 将对每家公司都显示。CEO 在 Fabrikam 和 Tailspin Toys 的 GAL 中都可见,并且可以创建跨越两家公司的通讯组。但是,通讯组的成员只能查看其所在公司中的成员。
情形 3:教育
此方案适用于必须分教室以确保学生隐私的学校或大学。
在此方案中,使用以下设置创建了 ABP:
学生只能查看其所在教室中的其他学生、自己的老师以及校长。
老师只能查看其所在教室中的学生、所有老师以及校长。
为每个教室的上级和教职员工创建通讯组。
|
Students_ClassA |
Teachers_ClassA |
校长 |
地址列表 |
AL_ClassA AL_Principal |
AL_ClassA AL_AllTeachers AL_AllGroups AL_Principal |
AL_ClassA AL_ClassB AL_AllTeachers AL_AllStudents AL_AllGroups |
全局地址列表 |
GAL_StudentsClassA |
GAL_TeachersClassA |
GAL_Everyone |
会议室地址列表 |
AL_BlankRoom |
AL_BlankRoom |
默认所有房间 |
脱机通讯簿 |
OAB_StudentsClassA |
OAB_TeachersClassA |
默认 OAB |
一般部署步骤
本部分提供在组织中部署 ABP 的一般步骤,包括如何从 Exchange 2007 地址列表分段迁移。
从地址列表分段迁移到 ABP
如果您当前使用的是 Exchange 2007 地址列表分段(根据白皮书在 Exchange 2007 中配置虚拟组织和地址列表分段中的说明),并且希望迁移到 ABP,请按从 Exchange 2007 地址列表分离迁移到 Exchange 2010 通讯簿策略中列出的步骤操作。此过程要求组织进行某种程度的停机,以确保做出相应的计划。
新部署 ABP
如果您没有使用 Exchange 2007 地址列表分段,请按本部分列出的步骤操作,在组织中部署 ABP。
以下步骤适用于情形 2:共有一个 CEO 的两家公司。在此方案中,Fabrikam 和 Tailspin Toys 是单独的公司,共有一个 CEO 和高级领导团队。此方案需要三个 ABP:
ABP_FAB
ABP_TAIL
ABP_CEO
步骤 1:划分您的虚拟组织
您需要制定一种方法,将您的组织划分成多个虚拟组织。在进行这项划分时,我们建议使用邮箱、联系人和组上的自定义属性,而不使用固有属性(如“公司”、“部门”或“州/省”)。使用自定义属性而不是固有属性的好处包括:
并非所有收件人类型在 Active Directory 中都有固有条件属性。例如,Active Directory 对象“通讯组”和“动态通讯组”不支持“公司”、“部门”或“省/市/自治区”属性。
并非所有固有条件属性都会在 cmdlet 中对有些收件人公开。例如,对于邮件用户、联系人、通讯组和支持邮件的公用文件夹,Company、Department 和 StateOrProvince 参数在 cmdlet 中不可用。
如果使用固有条件属性,则需要使用多个 cmdlet 将收件人分段。例如,要为用户邮箱设置 Company、Department 或 StateOrProvince 参数,必须在运行了 New-Mailbox 或 Set-Mailbox cmdlet 之后运行 Set-User cmdlet。
但是,CustomAttribute 参数在 Set-* cmdlet 中对每个收件人类型公开,因此不需要同时运行 Set-User cmdlet。
自定义属性特性是显式保留用于自定义组织的属性,完全受组织管理员控制。
有关自定义属性的详细信息,请参阅了解自定义属性。
划分组织时要考虑的另一种最佳实践是在通讯组或动态通讯组的名称中使用公司标识符。这样做的一种方法是使用组命名策略。通过这些策略,您可以指定将前缀、后缀或这两者同时应用于通讯组名称。这在划分组织时很有用,因为可以使用这些策略指定基于用户属性(如通讯组创建者的“公司”、“州/省”、“部门”和自定义属性等特性)的后缀或前缀。如果允许用户创建自己的通讯组,这一点尤其重要。有关详细信息,请参阅创建通讯组命名策略。
注意: |
---|
因为组命名策略不适用于动态通讯组,因此必须手动应用命名策略。 |
步骤 2:创建地址列表、房间列表、GAL 和 OAB
在创建地址列表和 GAL 时,不要使用 IncludedRecipient 和 ConditionalX 参数,如 ConditionalCompany 和 ConditionalCustomAttribute5。我们推荐代之以使用收件人筛选器。有关收件人筛选器的详细信息,请参阅在收件人命令中创建筛选器。
注意: |
---|
本部分的所有过程都使用命令行管理程序命令,因为您不能使用 EMC 创建收件人筛选器。 |
创建地址列表
在创建 ABP 时,根据您希望用户如何 Outlook 或 Outlook Web App 中查看列表,纳入多个地址列表。此方案需要四个地址列表:
AL_FAB_Users_DGs
AL_FAB_Contacts
AL_TAIL_Users_DGs
AL_TAIL_Contacts
此示例将创建地址列表 AL_TAIL_Users_DGs。该地址列表包含 CustomAttribute15 等于 TAIL
的所有用户和通讯组。
New-AddressList -Name "AL_TAIL_Users_DGs" -RecipientFilter {((RecipientType -eq 'UserMailbox') -or (RecipientType -eq "MailUniversalDistributionGroup") -or (RecipientType -eq "DynamicDistributionGroup") -and (CustomAttribute15 -eq "TAIL"))}
然后,将运行以上命令创建剩余的地址列表:AL_FAB_Users_DGs、AL_FAB_Contacts 和 AL_TAIL_Contacts。
有关语法和参数的详细信息,请参阅 New-AddressList。
有关使用收件人筛选器创建地址列表的详细信息,请参阅使用收件人筛选器创建地址列表。
创建房间列表
此方案需要三个房间列表:
AL_FAB_Rooms
AL_TAIL_Rooms
默认所有房间(默认情况下创建)
ABP 必须包含一个房间列表。如果您的组织没有资源邮箱(如房间邮箱或设备邮箱),我们建议您创建一个空白房间列表。以下示例将创建空白房间列表 AL_BlankRoom。
New-AddressList -Name AL_BlankRoom -RecipientFilter ((Alias -ne $null) -and ((RecipientDisplayType -eq 'ConferenceRoomMailbox') -or (RecipientDisplayType -eq 'SyncedConferenceRoomMailbox')))
但是,在此方案中,Fabrikam 和 Tailspin Toys 都有房间邮箱。此示例将通过使用筛选器为 Tailspin Toys 创建房间列表,其中 CustomAttribute15 等于 TAIL
。
New-AddressList -Name AL_TAIL_Rooms -RecipientFilter {(Alias -ne $null) -and (CustomAttribute15 -eq "TAIL")-and (RecipientDisplayType -eq 'ConferenceRoomMailbox') -or (RecipientDisplayType -eq 'SyncedConferenceRoomMailbox')}
然后,将运行以上命令为 Fabrikam 创建房间列表 (AL_FAB_Rooms)。
有关语法和参数的详细信息,请参阅 New-AddressList。
创建 GAL
此方案需要三个 GAL:
GAL_FAB
GAL_TAIL
默认 GAL(默认情况下创建)
ABP 中使用的 GAL 必须是地址列表的一个超集。不要创建包含的对象数少于 ABP 中任何或所有地址列表的 GAL。
此示例将为 Tailspin Toys 创建 GAL。该 GAL 包括了地址列表和房间列表中存在的所有收件人。
New-GlobalAddressList -Name "GAL_TAIL" -RecipientFilter {(CustomAttribute15 -eq "TAIL")}
然后,将运行以上命令为 Fabrikam 创建 GAL (GAL_FAB)。
有关语法和参数的详细信息,请参阅 New-GlobalAddressList。
创建 OAB
此方案需要三个 GAL:
OAB_FAB
OAB_TAIL
默认 OAB(默认情况下创建)
使用 New-OfflineAddressBook 或 Set-OfflineAddressBook 创建 OAB 时,将相应的地址列表或 GAL 包括在 AddressLists 参数中,确保没有意外遗漏的条目。例如,如果要自定义用户在查看 OAB 时会看到的列表集,或者只是希望减小 OAB 的下载大小,可以使用 AddressLists 参数指定 OAB 可用的地址列表。但是,如果您希望用户看到 OAB 中完整的 GAL 条目集,请确保将 GAL 包括在 AddressLists 参数中。
此示例将为 Tailspin Toys 创建 OAB。整个 GAL (GAL_TAIL) 包括在该 OAB。
New-OfflineAddressBook -Name "OAB_TAIL" -AddressLists "GAL_TAIL"
然后,将运行以上命令为 Fabrikam 创建 OAB (OAB_FAB)。
有关语法和参数的详细信息,请参阅 New-OfflineAddressBook。
步骤 3:创建 ABP
创建了所有需要的列表之后,就可以创建 ABP 了。
此示例将为 Tailspin Toys 创建 ABP。
New-AddressBookPolicy -Name "ABP_TAIL" -AddressLists "AL_TAIL_Users_DGs","AL_TAIL_Contacts" -OfflineAddressBook "\OAB_TAIL" -GlobalAddressList "\GAL_TAIL" -RoomList "\AL_TAIL_Rooms"
然后,将运行以上命令为 Fabrikam 和组织的 CEO 创建 ABP(分别为 ABP_FAB 和 ABP_CEO)。
有关语法和参数的详细信息,请参阅 New-AddressBookPolicy。
步骤 4:将 ABP 分配给邮箱
将 ABP 分配给用户是该过程的最后一步。ABP 会在用户的应用程序连接到客户端访问服务器上的 Microsoft Exchange 通讯簿服务时生效。当 ABP 应用于用户的帐户时,如果用户已经连接到 Outlook 或 Outlook Web App,他们将需要关闭并重新启动客户端应用程序,然后才能看到其新地址列表和 GAL。
此示例将通讯簿策略 ABP_TAIL 分配给 CustomAttribute15 等于 TAIL
的所有邮箱。
Get-Mailbox -resultsize unlimited | where {$_.CustomAttribute15 -eq "TAIL"}| Set-Mailbox -AddressBookPolicy "ABP_TAIL"
有关更多详细信息,请参阅将通讯簿策略分配给邮件用户。
© 2010 Microsoft Corporation。保留所有权利。