从 Exchange 2007 地址列表分离迁移到 Exchange 2010 通讯簿策略

 

适用于: Exchange Server 2010 SP2, Exchange Server 2010 SP3

上一次修改主题: 2016-11-28

本主题中的说明会指导您完成从基于 Exchange 2007 ACL 的全局地址列表 (GAL) 分段(也称为 GAL 分离)迁移到 Exchange 2010 Service Pack 2 (SP2) 通讯簿策略 (ABP) 所需的步骤。

重要重要说明:
本主题中的几个过程会影响用户。因此,通常需要计划停机时间。

先决条件

  • 虽然不是特定先决条件,但是强烈建议您在执行本主题中的过程之前查看了解通讯簿策略中的注意事项和最佳做法。

  • 本主题中的过程假设您按照白皮书在 Exchange 2007 中配置虚拟组织和地址列表分离(英文)中的步骤来配置 Exchange 2007 组织。

  • 如果您按照上面列出的白皮书中的步骤在 Exchange 2010 组织中实现 GAL 分段,则您正式处于不受支持状态。 要成功执行本主题中的过程,必须先将组织恢复为受支持状态。

  • 本文档中的大多数代码和命令行管理程序示例将 Contoso 用作 Active Directory 域名和 Exchange 组织名称,并将 FabrikamTailspin Toys 用作子组织名称。 请务必按照您组织的情况更改 Exchange 组织、域和子组织的名称。

  • 需要用于在 Exchange 2007 中划分虚拟组织的脚本。

设置方案

在此方案中,Tailspin Toys 和 Fabrikam 是父公司 Contoso 的子公司。

步骤 1: 准备在配置了 GAL 分段的现有 Exchange 2007 组织中安装 Exchange 2010 SP2(需要停机时间)

如果您的组织使用 Exchange 2007 GAL 分段,则安装 Exchange 2010 会失败,因为使用 GAL 分段需要从默认 GAL 中删除所有默认设置和权限。

  1. 在 Exchange 2007 组织中的域控制器上,在命令提示符处运行以下命令以允许访问默认 GAL。

    DSACLS "CN=Default Global Address List,CN=All Global Address Lists,CN=Address Lists Container,CN=CONTOSO,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=contoso,DC=com" /N /G contoso\administrator:RP
    
  2. 在安装了 Windows PowerShell 的域控制器上或在使用 Exchange 命令行管理程序的 Exchange 服务器上,运行以下命令以重新配置 GAL 的默认设置。

    注释注意:
    完成此步骤之后,Outlook 2007 用户将能够查看默认 GAL。但是,Outlook Web App 用户无法查看默认 GAL,因为 Outlook Web App 使用 QueryBaseDN 属性查询 GAL。
    $container = "CN=Default Global Address List,CN=All Global Address Lists,CN=Address Lists Container,CN=CONTOSO,CN=Microsoft Exchange,CN=Services, CN=Configuration,DC=contoso,DC=com"Add-ADPermission $container -User "Authenticated Users" -AccessRights GenericRead, ListChildren -ExtendedRights Open-Address-Book
    

    您将收到以下警告和输出:

    WARNING: Appropriate ACE is already present on object "CN=Default Global Address List,CN=All Global Address Lists,CN=Address Lists Container,CN=CONTOSO,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=CONTOSO,DC=COM" for account "NT AUTHORITY\Authenticated Users"
    Identity             User                 Deny  Inherited Rights
    --------             ----                 ----  --------- ------
    \Default Global A... NT AUTHORITY\Auth... False False     Open-Address-Book
    \Default Global A... NT AUTHORITY\Auth... False False     ReadProperty
    \Default Global A... NT AUTHORITY\Auth... False False     ListObject, Generi...
    \Default Global A... NT AUTHORITY\Auth... False False     ListChildren
    

步骤 2: 安装第一台 Exchange 2010 服务器

有关详细说明,请参阅从 Exchange 2007 客户端访问升级

步骤 3:保护默认 GAL

安装 Exchange 2010 SP2 之后,可以删除在安装过程中创建的地址列表,然后再次保护默认 GAL。 完成此步骤之后,可以继续在组织中安装其他 Exchange 2010 SP2 服务器。 有关详细信息,请参阅了解从 Exchange 2007 到 Exchange 2010 的升级

  1. (可选)在 Exchange 2010 服务器上,使用命令行管理程序删除新创建的地址列表。

    Remove-AddressList "All Contacts"
    Remove-AddressList "All Groups"
    Remove-AddressList "All Users"
    Remove-AddressList "Public Folders"
    

    有关详细信息,请参阅删除地址列表

  2. 在 Exchange 2010 服务器上,按照白皮书在 Exchange 2007 中配置虚拟组织和地址列表分离(英文)中的说明,使用命令行管理程序保护 GAL。

    Get-GlobalAddressList "Default Global Address List" | Add-ADPermission -User "Authenticated Users" -AccessRights GenericRead -ExtendedRights Open-Address-Book -Deny:$True
    
  3. 要验证该命令是否已成功,请运行以下命令。

    $galContainer = "CN=All Global Address Lists,CN=Address Lists Container,CN=CONTOSO,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=contoso,DC=com"
    Get-ADPermission $galContainer -user "authenticated users"
    

    此命令的输出应与以下内容类似:

    Identity             User                 Deny  Inherited Rights
    --------             ----                 ----  --------- ------
    All Global Addres... NT AUTHORITY\Auth... False False     GenericRead
    All Global Addres... NT AUTHORITY\Auth... False False     Open-Address-Book
    All Global Addres... NT AUTHORITY\Auth... False True      ListChildren
    All Global Addres... NT AUTHORITY\Auth... True  True      ReadProperty
    

步骤 4:切换到 Exchange 2010 服务器(需要停机时间)

在将任何邮箱移动到 Exchange 2010 SP2 服务器之前,必须切换外部 URL 名称。 这需要配置 Outlook Anywhere、Outlook Web App、Exchange Web 服务 (EWS)、Exchange 控制面板 (ECP)、自动发现和脱机通讯簿 (OAB) 以使用 Exchange 2010 服务器而不是 Exchange 2007 服务器。 此过程包含许多步骤,您应参考 Exchange 2007 - 规划升级和共存的路线图中的信息以了解详细信息。

注释注意:
以下步骤仅概述了整体过程中的重要步骤并说明它们各自完成的任务。 可能需要在组织中的每台服务器上运行这些命令中的一些命令(某些命令仅运行一次),大多数命令会导致一段时间的停机。 因此,强烈建议您花费足够时间来测试整个切换过程,以确保对客户端的影响最小。
  1. 使用命令行管理程序将所有 OAB 生成移动到 Exchange 2010 邮箱服务器。 通过将 OAB 生成移动到 Exchange 2010 SP2 服务器,OAB 可以使用 GAL(而不仅仅是地址列表)作为 OAB 内容的源。

    Get-OfflineAddressBook | Move-OfflineAddressBook -Server "MBX01_Ex2010SP2"
    

    有关详细信息,请参阅将脱机通讯簿生成进程移动至另一台服务器

  2. 设置 OAB 的虚拟目录以包含 Exchange 2010 虚拟组织。这会将 OAB 的副本分发到 Exchange 2010 服务器。

    此示例确保 Exchange 2007 和 Exchange 2010 服务器都具有所有 OAB 的副本。

    Get-OfflineAddressBook | Set-OfflineAddressBook -virtualdirectories "CAS1_Ex2007\OAB (Default Web Site)","CAS1_Ex2010SP2\OAB (Default Web Site)"
    

    有关详细信息,请参阅配置脱机通讯簿分发属性

  3. 必须先通过 Exchange 2010 路由所有传入的 Outlook Anywhere 通信,然后才能将邮箱移动到 Exchange 2010。

    此示例在 Exchange 2010 服务器上启用 Outlook Anywhere,而在 Exchange 2007 服务器上禁用它。

    Enable-OutlookAnywhere -Server:CAS1_Ex2010SP2 -ExternalHostname:mail.contoso.com -ClientAuthenticationMethod:Basic  
    Disable-OutlookAnywhere  -Server:CAS1_Ex2007
    

    有关详细信息,请参阅下列主题:

  4. 要使自动发现可以从 Exchange 2010 服务器正确返回 URL,必须在所有 Exchange 2010 服务器上配置 Outlook Web App、Exchange ActiveSync、EWS 和 ECP 以具有虚拟目录的有效外部 URL 属性。

    以下示例假设 mail.contoso.com 为用于访问 Exchange 2010 服务器的外部名称。

    Set-ActiveSyncVirtualDirectory -Identity 'CAS1_Ex2010SP2\Microsoft-Server-ActiveSync*' -ExternalURL https://mail.contoso.com/Microsoft-Server-ActiveSync
    Set-WebServicesVirtualDirectory  -Identity 'CAS1_Ex2010SP2\EWS*' -ExternalUrl https://mail.contoso.com/EWS/exchange.asmx
    Set-OWAVirtualDirectory -Identity 'CAS1_Ex2010SP2\OWA*' -ExternalURL https://mail.contoso.com/OWA
    Set-EcpVirtualDirectory -Identity 'CAS1_Ex2010SP2\ECP*' -ExternalURL https://mail.contoso.com/ECP
    

    有关如何配置以上设置的详细信息,请参阅以下主题:

  5. 要使 Exchange 2010 可以为具有 Exchange 2007 服务器上的邮箱的用户将 Outlook Web App 和 EWS 请求重定向回 Exchange 2007,需要为 2007 配置 Outlook Web App 和 EWS 外部 URL 以使用 legacy.contoso.com。此命名空间是用于访问 Exchange 2007 服务器的外部名称。

    Set-WebServicesVirtualDirectory -Identity 'CAS1_Ex2007\EWS*' -ExternalUrl https://legacy.contoso.com/EWS/exchange.asmx
    Set-OWAVirtualDirectory -Identity 'CAS1_Ex2007\OWA*' -ExternalURL https://legacy.contoso.com/OWA
    
  6. 要使 Exchange 2010 可以将所有传入 Exchange ActiveSync 连接代理到 Exchange 2007,请清除 Exchange ActiveSync 的 2007 外部 URL。

    Set-ActiveSyncVirtualDirectory -Identity 'CAS1_Ex2007\Microsoft-Server-ActiveSync*' -ExternalURL:$null
    
  7. 该过程中的最后一步是更改公用 DNS 以便 mail.contoso.com(在我们提供的示例中)和 autodiscover.contoso.com 解析为 Exchange 2010,而 legacy.contoso.com DNS 记录解析为 Exchange 2007。所有客户端连接都会通过 Exchange 2010,然后 Exchange 2010 会通过自动发现重定向到客户端(对于 Outlook Web App)、代理到客户端(对于 Exchange ActiveSync)或向客户端提供特定于版本的 URL(对于 EWS)。

步骤 5:创建镜像 Exchange 2007 地址列表分段 ACL 的 ABP

下一步是确定虚拟组织可以使用 GAL 分段进行访问的地址列表、GAL 和 OAB,然后为每个虚拟组织创建一个对这些内容进行镜像的 ABP。

  1. 如果是使用在 Exchange 2007 中配置虚拟组织和地址列表分离(英文)中的步骤设置 Exchange 2007 组织,则创建了划分虚拟组织的脚本。 查看用于在 Exchange 2007 中创建虚拟组织的脚本,以确定每个虚拟组织的 GAL、地址列表和 OAB。 对于每个虚拟组织,都应找到一个 GAL、至少一个地址列表和一个 OAB。

    注释注意:
    ABP 必须具有房间列表。 如果未在组织中使用房间列表,请创建一个空白房间地址列表,然后在配置 ABP 时使用该地址列表,或在 ABP 中设置房间列表属性以使用为 GAL 指定的相同地址列表。

    例如,当查看用于划分子公司 Tailspin Toys 的脚本时,会找到以下信息:

    • Tailspin Toys 用户全都包含在名为 Tailspin_SG 的安全组中。

    • 安全组 Tailspin_SG 向用户授予针对以下内容的读取/打开访问权限:

      地址列表

      GAL

      OAB

      AL_TailspinUsers

      AL_TailspinGroups

      AL_TailspingContacts

      GAL_Tailspin

      OAB_Tailspin

    • Tailspin Toys 没有房间地址列表。

  2. 创建一个与 Tailspin Toys 组织匹配的 ABP。

  3. 例如,如果使用 Exchange 管理控制台创建 ABP,则在“新建通讯簿策略”向导中输入以下信息:

    如果使用命令行管理程序创建 ABP,请运行以下命令。

    New-AddressBookPolicy -Name 'ABP_Tailspin' -GlobalAddressList '\GAL_Tailspin' -OfflineAddressBook '\OAB_Tailspin' -AllRoomList '\RAL_BLANKROOMS' -AddressLists '\AL_TailspinContacts','\AL_TailspinGroups','\AL_TailspinUsers'
    

    有关详细信息,请参阅创建通讯簿策略

  4. 针对每个虚拟组织按照以上说明执行操作。例如 Fabrikam。

步骤 6:将邮箱从 Exchange 2007 服务器移动到 Exchange 2010 服务器(需要停机时间)

在将邮箱移动到 Exchange 2010 服务器时,会从使用 ACL 切换为使用 ABP。

注释注意:
建议您创建在一个步骤中执行此过程的脚本。
  1. 使用 MoveRequest cmdlet 移动邮箱。 有关详细信息,请参阅创建本地移动请求

  2. 将 ABP 分配给移动的邮箱。 有关详细信息,请参阅将通讯簿策略分配给邮箱用户 (EPW)(英文)。

  3. 从用户对象中清除 QueryBaseDN。 这可以直接通过 Adsiedit.msc 控制台完成,也可以从命令行管理程序通过多步骤过程完成。此示例演示如何使用命令行管理程序清除 QueryBaseDN。

    $user = ([ADSI]"LDAP://CN=Bob,CN=Users,DC=Contoso,DC=com").psbase
    $user.Properties["msExchQueryBaseDN"].Value=$null
    $user.CommitChanges()
    
  4. 从邮箱中删除 OAB 设置。

    此示例从 John 的邮箱中删除 OAB:

    Set-Mailbox -Identity John -OfflineAddressBook $null
    

移动了邮箱并配置了所有其他设置之后,使用 Outlook 的用户会收到以下错误,需要关闭并重新启动 Outlook: “Microsoft Exchange 管理员进行了需要您退出并重新启动 Outlook 的更改。”

步骤 7: 后续步骤

在将所有邮箱移动到 Exchange 2010 SP2 并且所有邮箱都在取消了 ACL 的 ABP 上运行之后,可以开始按照用于删除 Exchange 2007 组织的标准 Exchange 指南执行操作。

删除和修改 Exchange 2007

如何删除 Exchange 2007 组织

如果遇到困难,则下面的 Microsoft 知识库文章可能有所帮助:

如何从计算机中删除 Exchange 2007

 © 2010 Microsoft Corporation。保留所有权利。