执行单步迁移

 

上一次修改主题: 2006-03-07

单步迁移包括几个关键步骤:

  • 选择正确的迁移工具
  • 在计算机实验室中测试迁移过程,然后部署 Exchange 2003
  • 在 Active Directory 中创建收件人对象
  • 部署 Outlook 并提供用户培训
  • 迁移用户数据
  • 停用旧系统

这些步骤的顺序取决于具体情况。例如,如前面所述,如果旧邮件系统支持 MAPI,则可能需要尽早部署 Outlook。在迁移之前部署 Outlook,用户可以将现有邮件、约会和任务下载到其工作站上的 .pst 文件,并将此数据保留在新的 Exchange 2003 组织中。在这种情况下,不需要使用 Exchange 迁移向导或其他工具迁移基于服务器的数据。只是必须替换现有的邮件系统并为 Exchange 2003 重新配置用户的 Outlook 配置文件。

记住,单步迁移的成功很大程度上取决于您的准备情况。在投入生产环境之前,必须在计算机实验室中测试各个迁移步骤并解决各步骤中出现的任何严重问题。此外,在迁移之前,用户必须了解 Outlook。在支持 Outlook 的旧邮件环境中,或无法预先部署 Outlook 的新 Exchange 2003 组织中,可以通过培训和实际操作来实现此目标。在后一种情况下,在部署 Exchange 2003 和 Outlook 之后应等待一段适当的时间(通常为几周或一个月),然后再迁移邮箱,使用户有机会使用新的邮件客户端。

important重要提示:
在单步迁移中,应按照在计算机实验室中验证过的分步说明进行操作。

将图 1 中所示的流程图作为指南来确定合适的迁移步骤序列。

a5197a3a-969e-4a70-96ee-c519b63ccf0a

迁移工具

将邮箱和数据移动到 Exchange 2003 的步骤很大程度上取决于所选的迁移工具的功能。推荐的工具是 Exchange 迁移向导,该工具包含在 Exchange 2003 产品包装中。也可以从非 Microsoft 供应商获取各种工具。

important重要提示:
有关用于在 Lotus Notes R5/R6、Exchange Server 2003 和 Windows Server 2003 Active Directory 之间互操作的可下载工具、指南和其他资源的详细信息,请参阅 Resources for Moving to the Microsoft Collaboration Platform(英文)

主要迁移工具包括:

  • Exchange 迁移向导   此向导自动将邮箱和基于服务器的数据迁移到 Exchange 2003。Exchange 迁移向导提取并转换文件夹、邮件和通讯簿(如果适用)。

  • Outlook 2003   Outlook 也可以归类为迁移工具,因为此客户端可以从各种数据源(包括 Lotus cc:Mail 存档, .pst 文件、数据库等)导入数据。Outlook 中的导入/导出功能可能需要在客户端计算机上安装其他软件。

  • Exchange 应用程序转换器   应用程序转换器可以简化工作组应用程序的迁移。例如,可以快速地将简单的讨论表单转换为 Outlook 窗体应用程序。但是,复杂的应用程序需要进行完整的重新工程。

  • Lotus cc:Mail 存档导入程序   可以使用此工具将 Lotus cc: Mail 存档文件导入 Exchange 2003 邮箱存储中的文件夹或者一个或多个 .pst 文件。要下载 Lotus cc:Mail 存档导入程序,请访问 https://go.microsoft.com/fwlink/?LinkId=25933

  • 非 Microsoft 工具   各种非 Microsoft 工具可以简化向 Exchange 的迁移。其中许多工具依赖于 MAPI 并且通过 Outlook 客户端与 Exchange 2003 进行通信。Microsoft 不支持这些工具,并且不保证这些工具可以在任何迁移方案中使用。必须在测试实验室中验证其功能和可靠性。表 1 列出了 Exchange 2003 的非 Microsoft 迁移工具示例。

    表 1   Exchange 2003 的非 Microsoft 迁移工具示例

    迁移工具 用于

    Automation-Specialists Exchange Directory Migration Manager

    将通讯组列表和自定义收件人迁移到 Exchange 2003 组织

    AutoProf Profile Maker

    远程创建或修改 Outlook 配置文件

    ComAxis Technology UniAccess

    迁移 CompuServe WinCIM 数据

    CompuSven E-Mail Shuttle

    将数据从 Fischer Totally Automated Office (TAO) 和 H & W SYSM 迁移到 Exchange

    Gens Software QmailMig to Microsoft Exchange

    将 QmailMig 数据迁移到 Exchange

    Incognito Software Migration Director

    将 Banyan VINES 帐户和邮箱迁移到 Exchange

    Lightspeed Systems Vines Migration Tools (VMT)

    将 Banyan Systems BeyondMail and Intelligent Messaging III/IV 用户迁移到 Exchange

    OpenOne Direct-TO-1

    将数字电子邮件服务器迁移到 Exchange

    Simpler-Webb Inc. CalMover

    将日历数据从 Steltor CorporateTime、HP OpenTime 和 Netscape Calendar Server 迁移到 Exchange

    Simpler-Webb Inc. MailMover Suite

    将用户从 HP OpenMail 或 Samsung Contact 迁移到 Exchange

    TBS Software MIGRA/PS-Export for the Microsoft Exchange Migration Wizard

    将用户从 IBM OfficeVision/MVS 迁移到 Exchange

    Transend Migrator

    将数据从各种邮件系统(包括 Lotus cc:Mail、Novell GroupWise、IMAP4、Netscape、Eudora/Eudora Pro、Microsoft Outlook Express 和邮件处理系统 (MHS))迁移到 Exchange

    Wingra Technologies Novell GroupWise Migrator for Outlook

    将 Novell GroupWise 数据迁移到 Outlook

Exchange 迁移向导

Exchange 迁移向导是一种重要的迁移工具。该向导与 Exchange 系统管理器一起安装在 Exchange 2003 服务器上。可以使用 Exchange 迁移向导连接到旧邮件系统,将用户数据提取到临时迁移文件,然后连接到目标 Exchange 2003 服务器,以便将数据放入相应的邮箱。该向导甚至可以在此过程中自动创建邮箱。如果要修改迁移文件,可以在一个步骤中或在两个步骤中完成整个过程。

note注意:
作为一种专门用于提取和导入数据的工具,Exchange 迁移向导并不分析安全设置。因此,该向导不保留对其他邮箱、收件箱规则或应用于各个邮箱的其他特殊配置设置的委派权限。用户必须将其特定的收件箱规则、视图、访问权限等应用于 Exchange 2003 组织中的新邮箱。

Exchange 迁移向导依赖于下列两个步骤:

  • 源提取   源提取程序连接到源邮件系统并提取数据,将其保存在一组迁移文件中。Exchange 迁移向导可以对多种邮件系统使用各种源提取程序,这些邮件系统包括 Microsoft Mail for PC Networks、Lotus cc:Mail、Novell GroupWise 和 IMAP4 主机以及符合轻型目录访问协议 (LDAP) 的目录。选择希望在向导的“欢迎使用”页上单击“下一步”后出现的迁移向导页面上显示的源提取程序。

    note注意:
    某些源提取程序可能需要其他软件(例如 Lotus cc:Mail Export.exe 工具)才能全功能运行,或者要求在本地计算机上安装 Novell GroupWise 客户端。
  • 迁移文件导入   Exchange 迁移向导使用其内部迁移文件导入程序组件将邮件、日历信息和协作数据插入选定的 Exchange 存储,并将收件人信息插入 Active Directory。尽管存在许多不同类型的源提取程序,但是只有一个迁移文件导入程序。

    note注意:
    必须是目标管理组中的 Exchange 管理员(完全控制)和目标 Active Directory 域或组织单位中的帐户管理员,才能导入邮件数据和目录信息。

迁移文件

迁移文件是 .csv 文件,可以在文本编辑器中或使用 Microsoft Excel 打开。在使用 Exchange 迁移向导导入迁移文件之前,还可以使用 Excel 进行编辑。通过此方式,可以更改邮箱别名或根据显示名称生成名和姓字段。还可以添加其他信息,例如电话号码、部门名称等。此外,还可以删除在某个日期之前发送的所有邮件。

Exchange 迁移向导迁移文件导入程序需要下列三种类型的文件来完成迁移:

  • 打包列表文件   用于标识主迁移文件和辅迁移文件。Exchange 迁移向导需要使用打包列表文件来确定迁移所涉及的所有主文件和辅文件。
  • 主文件   其中包含目录信息以及邮件头和辅文件指针。存在一个称为 directory.pri 的主文件,其中包含所有用户及其属性(例如显示名称、别名和电子邮件地址)的目录信息。每个用户还存在一个主文件,其中包含相应的邮件头信息(例如收件人、发件人、抄送、主题、日期和时间)以及辅文件指针。用户的主文件按照编号序列命名,例如 00000001.pri、00000002.pri、00000003.pri 等。
  • 辅文件   其中包含原始数据,例如邮件正文、附件等。
    note注意:
    不要编辑辅迁移文件。更改辅文件将使相应主文件中的所有偏移和指针失效。编辑主迁移文件也可能会造成数据不正确。保存一份原始迁移文件的副本,并在生产环境中应用更改之前仔细进行测试。

Exchange 迁移向导不会更改或删除源邮箱中的邮件。在执行迁移之后,源邮箱将保持不变并继续接收邮件。没有可以自动删除旧邮箱的选项。必须重新配置邮件路由并停用旧系统。

迁移收件人信息

将现有邮件、约会、任务、联系人以及其他与用户有关的数据复制到 Exchange 2003 之前,必须创建与旧邮件系统中可用的邮箱对应的邮箱。为其他收件人对象(例如通讯组列表以及位于所迁移环境之外的外部收件人)创建镜像也很有用。通过执行完整的收件人信息迁移,用户可以在新的邮件环境中继续使用熟悉的电子邮件地址。

可以通过下列方式之一迁移目录信息:

  • 自动迁移   使用 Exchange 迁移向导,可以在迁移邮箱时自动在 Active Directory 中创建已启用邮箱的用户帐户。但是,Exchange 迁移向导处理通讯组列表或组的能力有限。
  • 手动迁移   可以使用 Active Directory 用户和计算机来手动创建已启用邮箱的用户帐户和其他收件人对象。此策略适用于迁移少量用户的情形。
  • 编程迁移   可以使用 ADSI 和 CDOEXM 在 Microsoft Visual Basic Scripting Edition (VBScript) 中开发自定义应用程序。例如,可以创建 ASP 页来迁移和维护收件人信息。此方法非常灵活,您可以像在旧邮件系统中一样为邮箱、通讯组列表和外部收件人创建镜像,但是需要具有编程技能。
  • 半自动迁移   如果可以将旧邮件系统中的所有收件人信息导出到文本文件,则可以使用这些信息创建一个 LDIF 文件,以便使用 Ldifde.exe 将收件人导入 Active Directory,或创建一个 .csv 文件,并使用 Csvde.exe 导入信息。

使用 Exchange 迁移向导创建已启用邮箱的帐户

Exchange 迁移向导可以自动创建邮箱。可以为新的已启用邮箱的用户帐户指定组织单位。还可以指定如何生成密码。Exchange 迁移向导可以使用帐户名作为密码或为所有用户生成随机密码字符串,然后将其写入临时迁移目录中的 ACCOUNT.PASSWORD 文件。

保留旧电子邮件地址

如果要更改或添加收件人信息,可以在 Exchange 迁移向导中执行两步迁移,并在 Exchange 2003 中应用更改之前编辑 Directory.pri 用户列表文件。但是,尽可能避免更改用户的 Secondary-Proxy-Addresses 字段。Exchange 迁移向导在 Active Directory 中创建用户帐户时,将在此字段中保留每个用户的原始电子邮件地址,以便 Exchange 可以将对旧邮件的回复路由到用户的新 Exchange 2003 邮箱。例如,假定一个已迁移的用户(现在是 Exchange 用户)回复旧邮件或在新邮件中指定旧电子邮件地址。当用户单击工具栏上的“检查姓名”按钮时(或在不执行此步骤的情况下发送邮件,此时 Outlook 将自动检查姓名),Exchange 可以在 Active Directory 中找到引用您的邮箱的收件人对象,因为此收件人对象具有匹配的辅助代理地址。电子邮件随后被传递到 Exchange 2003 邮箱。本主题后面部分将介绍有关辅助代理地址的详细信息。

note注意:
如果非 Exchange 用户向已迁移用户的旧地址发送邮件,并且在迁移之后已将旧邮箱从旧邮件系统中删除,则可能会生成 NDR。某些邮件系统支持自动转发规则。在这种情况下,最好隐藏已迁移的邮箱,而不要删除这些邮箱,并将自动转发规则配置为将发送到旧地址的所有邮件都转发到新 Exchange 邮箱。

地址匹配

在运行 Exchange 迁移向导之前,Active Directory 中可能已存在收件人信息,例如,因为 NovellGroupWise 或 IMAP4 用户已拥有属于 Active Directory 林的 Windows 域中的用户帐户。在这种情况下运行 Exchange 迁移向导不会产生重复的用户信息。Exchange 迁移向导在 Active Directory 中搜索匹配的收件人对象,尝试使帐户重复情况减少至最低。

如果从非 Exchange 邮件系统进行迁移,则 Exchange 迁移向导将使用下列信息来确定匹配项:

  • Exchange 迁移向导将要迁移的帐户的电子邮件地址与 Active Directory 中的目标用户对象的电子邮件地址进行匹配。因为邮件系统中的电子邮件地址是唯一的,所以任何匹配的帐户均被视为明确的匹配项。
    如果在迁移期间尝试中断明确的匹配项,则 Exchange 迁移向导将警告所选对象不能是不匹配的项,因为该关联是基于匹配的代理地址的。如果从非 Exchange 如果从非 Exchange 系统进行迁移并且希望避免与现有用户帐户的明确匹配项,则必须在邮件系统中编辑要进行迁移的用户的电子邮件地址或 Active Directory 用户对象的电子邮件地址,这样在使用 Exchange 迁移向导开始迁移过程之前,地址就不再匹配。
  • Exchange 迁移向导将要迁移的帐户的“全名”和“登录 ID”属性与目标用户对象的“全名”和“登录 ID”属性进行匹配。因为“全名”和“登录 ID”属性在具有多个域的 Active Directory 林中可能不是唯一的,所以,任何匹配的帐户均被视为可能的匹配项。
    有两个选项用于修改可能的匹配项,这两个选项出现在 Exchange 系统管理器中“创建和关联 Windows 帐户”页上的“现有 Windows 帐户”列中。
    • 使用“查找现有帐户”将要从邮件系统中迁移出来的邮箱与现有 Windows 用户帐户进行匹配。
    • 使用“新建帐户”忽略匹配项,并新建用户对象。可以编辑新 Windows 帐户的“全名”和“登录 ID”。双击帐户打开“邮件帐户属性”,然后编辑帐户信息。

将用户帐户迁移到资源林

在 Exchange 迁移向导中检查帐户创建选项时(在“新 Windows 帐户容器”向导页上单击“选项”),您会发现,Exchange 迁移向导可以将已迁移的帐户与外部域中的帐户相关联。如果指定具有相应帐户管理员权限的管理员帐户,还可以选择在外部域中创建关联的帐户。如果计划将非 Exchange 用户迁移到部署在资源林中的 Exchange 2003 组织,则此功能很有用。

如果内部资源分布在各种 Microsoft Windows NT® 域或独立 Active Directory 林上,组织会将 Exchange 2003 部署在资源林中。在这种情况下,应使用已禁用的启用了邮箱的用户帐户为 Exchange 2003 组织部署一个单独的林。必须在资源林与帐户域之间建立信任关系。然后,然后,可以为帐户域中的外部帐户授予对资源林中已禁用的启用了邮箱的用户帐户的“关联的外部帐户”权限。为此,请转到 Active Directory 用户和计算机中已启用邮箱的用户帐户的属性,切换到“Exchange 高级”选项卡,并单击“邮箱权利”。此邮箱权利使指定用户可以使用自己的帐户登录到邮箱。Exchange 迁移向导可以自动建立外部帐户关联。有关在资源林中部署 Exchange Server 2003 的详细信息,请参阅 Planning an Exchange Server 2003 Messaging System(英文)(https://go.microsoft.com/fwlink/?LinkId=21766)。

手动创建收件人对象

如果 Exchange 系统管理器不支持旧邮件系统,或您选择使用其他迁移方法,则可能需要在 Exchange 2003 中手动创建邮箱和其他收件人对象。在 Exchange 2003 中,由 Active Directory 中的已启用邮箱的用户帐户创建邮箱。旧版通讯组列表对应于已启用邮件的用户组,对旧邮件系统之外的收件人的地址引用对应于 Active Directory 中已启用邮件的用户帐户或联系人。可以使用 Active Directory 用户和计算机为用户帐户启用邮箱或为用户帐户、组和联系人启用邮件。表 2 将非 Microsoft 邮件系统中的典型收件人对象与 Active Directory 中对应的收件人对象进行匹配。

表 2   非 Microsoft 邮件系统中和 Exchange 2003 中的收件人对象

非 Microsoft 邮件系统 Exchange 2003 邮件系统 注释

邮箱

已启用邮箱的用户帐户

如果用户已经在 Active Directory 中拥有帐户,例如,因为用户正在使用 Windows 域环境中的 Microsoft Windows XP 工作站,则为现有帐户启用邮箱。对于 Active Directory 林中不存在的用户,则新建已启用邮箱的帐户。

外部收件人

已启用邮件的用户帐户

如果用户位于 Active Directory 林中但仍保留在未进行迁移的非 Exchange 邮件系统上,则使用已启用邮件的用户帐户。

外部收件人

已启用邮件的联系人

对不在 Active Directory 林中并且在未迁移的非 Microsoft 邮件系统上的用户使用已启用邮件的联系人对象。

分发列表

已启用邮件的通用通讯或安全组

尽可能, 创建已启用邮件的安全组和旧式系统中配置组成员根据向通讯组列表。启用邮件的组可包含任何类型的收件人对象, 包括已启用邮箱的用户启用邮件的用户、 启用邮件的组, 已启用邮件的联系人和邮件 - 启用公用文件夹。

通讯组列表

已启用邮件的公用文件夹

在某些情况下,可能需要为旧版通讯组列表配置已启用邮件的公用文件夹。例如,可以将通讯组列表迁移到公用文件夹,并配置公用文件夹规则,以将传入邮件转发给原来是通讯组列表成员的所有收件人。但是此方法有一些缺点,包括:

  • 所有邮件必须首先到达公用文件夹所在的服务器。这可能会导致邮件路由效率低。
  • 公用文件夹规则无法很好地适应大量邮箱。
  • 所有用户都要求对“通讯组列表”公用文件夹进行写访问。
  • 对于被迁移的用户,必须手动更新公用文件夹规则,以将邮件转发到 Exchange 邮箱。Exchange 迁移向导无法完成此任务。
note注意:
为了实现通讯组列表的邮件存档,可以为公用文件夹启用邮件,然后将公用文件夹作为成员添加到通讯组,但是不应使用公用文件夹取代通讯组。

配置收件人策略

为 Active Directory 中的目录对象启用邮箱或邮件时,Exchange 2003 会自动维护基于服务器的地址列表(例如全局地址列表)。这是收件人更新服务的工作。此服务为所有已启用邮箱或邮件的收件人对象(例如用户帐户、组和联系人)分配默认电子邮件地址。收件人策略确定生成的电子邮件地址的格式。

使用 Exchange 系统管理器来调整默认收件人策略中的设置,如下所述:

  1. 在控制台树中,展开“收件人”容器,然后选择“收件人策略”。在详细信息窗格中会列出“默认策略”对象。如果要保留现有收件人信息,必须调整此收件人策略,或创建优先级更高的新策略,以应用于所有相关对象并分配与旧邮件系统中对应的默认电子邮件地址。

  2. 双击“默认策略”对象以显示其属性,然后单击“电子邮件地址”选项卡。现在可以更改各种地址生成规则,例如 SMTP 地址的生成规则。可以在电子邮件地址生成规则中使用占位符。例如,如果要由默认地址格式 <用户登录名>@<域名> 更改为地址格式 <名>.<姓>@<域名>(例如 Ted.Bremer@contoso.com),则必须对名和姓使用占位符,因为这些是变量信息。在此例中,在“电子邮件地址”选项卡上选择 SMTP 地址的条目,单击“编辑”,然后在“地址”下,将 %g.%s 添加到地址定义的开头(例如 %g.%s@contoso.com)。此外,可以指定要使用的字符数(例如 %g%1s@contoso.com 的结果是 TedB@contoso.com)。表 3 列出了地址生成规则中可能的占位符。

    表 3   地址生成规则中的占位符

    占位符 描述

    %d

    显示名

    %g

    %i

    缩写

    %m

    别名

    %s

    note注意:
    有关可以使用的其他占位符的信息,请参阅 Microsoft 知识库文章 285136“如何自定义 SMTP 电子邮件地址生成器通过收件人策略”(https://go.microsoft.com/fwlink/?linkid=3052&kbid=285136)。

配置主地址和辅地址

有些组织希望在迁移期间更改 SMTP 地址,在参与公司合并时尤其如此。但是,如果为用户分配新的电子邮件地址,对旧邮件的答复将无法送达。要保留旧地址信息,请调整收件人策略,除了为用户分配新的主 SMTP 地址之外,还要分配辅 SMTP 地址。必须指定地址生成规则,以生成与旧系统匹配的辅地址。然后,Exchange 2003 对所有传出电子邮件使用主 SMTP 地址,同时还传递发往任何分配的辅地址的所有传入电子邮件。Exchange 2003 组织中的收件人只能有一个主 SMTP 地址和多达 32 个辅 SMTP 地址,这对于大多数用户已经足够了。

通过编程创建收件人对象

可以使用 ADSI 和 CDOEXM 在 Active Directory 中创建已启用邮箱和邮件的收件人对象。重要对象是 CDO.PersonADSI.User。以下 VBScript 代码示例使用 CDO.Person 在 Active Directory 中创建用户帐户并为其启用邮箱。

note注意:
以下代码示例在域 contoso.com 中名为 Server01 的域控制器(包含名为 EX-SRV1 的 Exchange 服务器)上编写并测试。如果要在其他计算机上测试此代码,必须更改 LDAP 路径。此规则同样适用于本主题中的所有其他代码示例。

使用 ADSI.User 处理 Active Directory 信息的示例在“通过 VBScript 更新收件人信息”一节中介绍。

Set oPerson = CreateObject("CDO.Person")
oPerson.LastName = "Bremer"
oPerson.DataSource.SaveTo "LDAP://server01.contoso.com/" _
                        & "CN=Ted,CN=Users,DC=Contoso,DC=com"

Set oMailbox = oPerson.GetInterface("IMailboxStore") 
oMailbox.CreateMailbox _
     "CN=Mailbox Store (EX-SRV1),cn=First Storage Group," _
   & "cn=InformationStore,cn=EX-SRV1,cn=Servers," _
   & "cn=First Administrative Group," _
   & "cn=Administrative Groups,cn=Exchange," _
   & "cn=Microsoft Exchange,cn=Services,cn=Configuration," _
   & "dc=Contoso,dc=com"

oPerson.DataSource.Save
set oMailbox = nothing
set oPerson = Nothing

注意 IMailboxStore 接口的用法,可以通过 GetInterface 方法从 CDOEX 和 ADSI 对象检索该接口。IMailboxStore 是 CDOEXM 接口,便于为用户帐户创建邮箱。此代码示例不指定任何电子邮件地址。Exchange 收件人更新服务根据收件人策略分配信息,如上文所述。有关 ADSI、CDOEX 和 CDOEXM 的详细信息,请参阅 Exchange 软件开发工具包 (SDK) (https://go.microsoft.com/fwlink/?LinkId=25925)。

使用 LDIFDE 或 CSVDE 半自动创建收件人对象

如果您不是程序员,则可以使用 Ldifde.exe 或 Csvde.exe 创建所需的收件人对象。Ldifde.exe 处理 LDIF 文件,这是对符合 LDAP 标准的目录执行批处理操作的一种文件格式标准。要查看 Ldifde.exe 的常规参数,请打开命令提示符,键入 ldifde,然后按 Enter 键。屏幕输出解释可用选项并提供命令行示例。有关 Ldifde.exe 的详细信息,请参阅 Microsoft 知识库文章 237677“使用 LDIFDE 将目录对象导入或导出到 Active Directory”(https://go.microsoft.com/fwlink/?linkid=3052&kbid=237677)。

许多运行异构邮件环境的大公司更愿意手动执行目录同步。这样,可以保证对包含数十万个收件人对象的目录的同步的控制。通常,以 .csv 格式分发通讯簿文件。此文件格式非常方便,因为此格式使您可以在导入信息之前,在 Excel 中处理地址信息。使用 Csvde.exe 工具来处理此文件类型。命令语法与 LDIFDE 工具的命令语法相同。两种工具拥有许多相同的功能。

以下示例使用 Ldifde.exe 创建已启用邮箱的用户帐户(名为 Ted),包含 SMTP 和 X.400 代理地址。可以使用以下命令导入此文件:ldifde -i -f <Import File> -s <Domain Controller>(例如 ldifde -i -f Import.ldf -s server01)。

dn: CN=Ted,CN=Users,DC=contoso,DC=com
changetype: add
displayName: Ted
objectCategory: CN=Person,CN=Schema,CN=Configuration,DC=contoso,DC=com
objectClass: user
proxyAddresses: X400:c=us;a= ;p=Exchange;o=Exchange;s=Ted;
proxyAddresses: smtp:OldTed@Contoso.com
proxyAddresses: SMTP:Ted@Contoso.com
name: Ted
sAMAccountName: Ted
userAccountControl: 512
userPrincipalName: Ted@Contoso.com
msExchHomeServerName: 
 /o=Exchange/ou=First Administrative Group/cn=Configuration/cn=Servers/cn=EX-SRV1
mailNickname: Ted
important重要提示:
使用 Ldifde.exe 和 Csvde.exe 创建用户帐户时,应确保在导入文件中指定的信息适用于特定的环境。Ldifde.exe 和 Csvde.exe 均不执行有效性检查。例如,可能会导入无效的 msExchHomeServerName 信息,在这种情况下,邮箱将放置在不存在的服务器上,用户无法加入 Exchange 组织。如果发生这种情况,应通过 Ldifde.exe 修改受影响的属性以更正信息,方式与前面各节中介绍的步骤类似。

更新 Active Directory 中的收件人信息

使用 Exchange 迁移向导、Active Directory 用户和计算机或介绍的任何其他方法创建收件人对象之后,可能需要验证并更新主电子邮件地址或辅电子邮件地址。如果必须保留不符合特定模式的现有地址信息,则尤其如此。如果用户拥有任意电子邮件地址,则无法使用收件人策略保留此信息。收件人更新服务分配了默认地址之后,必须在 Active Directory 用户和计算机中手动调整电子邮件地址。这可能会造成混淆,如果要迁移大量用户,则尤其如此。为了简化此任务,请使用 Ldifde.exe、Csvde.exe 或 ADSI 和 CDOEXM 来对 Active Directory 执行批处理操作。

使用 LDIFDE 更新收件人信息

使用 Ldifde.exe 更新 Active Directory 中的收件人信息的过程与前面所述的创建已启用邮箱的用户帐户的过程几乎相同。只需要指定更改类型以及要修改的目录对象。要修改用户帐户、组和联系人的电子邮件地址,请先从域控制器导出目录信息。然后,可以通过生成的导出文件来确定要更新的每个收件人对象的可分辨名称。可分辨名称唯一标识目录对象。

使用命令 ldifde -f c:\Export.ldf -s <Domain Controller>(例如 ldifde -f export.ldf -s server01)导出域中的所有可用目录信息。如果使用 –d 参数并指定用于数据导出的搜索库的可分辨名称,可以将输出限制为特定的组织单位,甚至可以限制为特定的用户帐户。使用以下命令导出“用户”容器中的所有对象:ldifde -f Export.ldf -s <Domain Controller> -d "CN=Users,DC=<Domain>,DC=<com>"(例如 ldifde -f Export.ldf -s server01 -d "CN=Users,DC=Contoso,DC=com")。

导出目录信息并确定您感兴趣的收件人对象的可分辨名称之后,就相对容易为电子邮件地址更新创建导入文件。包含可分辨名称的行以 dn: 开头。以下示例显示的导入文件将两个 SMTP 地址和一个 X.400 地址分配给已启用邮箱的帐户(名为 Ted)。可以像创建帐户一样导入此文件(例如 ldifde -i -f Import.ldf -s server01)。

dn: CN=Ted,CN=Users,DC=contoso,DC=com
changetype: modify
replace: proxyAddresses
proxyAddresses: SMTP:Ted@contoso.com
proxyAddresses: X400:c=US;a= ;p=FirstOrg;o=Exchange;s=Ted;
proxyAddresses: smtp:postmaster@contoso.com
-

记住更新记录之间的连字符以及导入文件最后一行的连字符。

important重要提示:
在生产环境中使用 Ldifde.exe 之前,请备份域控制器和全局编录服务器,在计算机实验室中测试导入文件,并仔细验证结果。使用导入设置不正确的 Ldifde.exe 可能会破坏 Active Directory 并强制您通过备份还原 Active Directory。

使用 .csv 文件更新收件人信息

Csvde.exe 工具不如 Ldifde.exe 强大,因为 Csvde.exe 无法修改或删除现有目录对象。因此,如果计划根据 .csv 文件更新收件人信息,则必须提取相关的 .csv 条目并将其写入 .ldf 文件。然后可以如前面所述使用 Ldifde.exe。

以下 Excel 宏说明如何通过包含 proxyAddresses 属性的 .csv 文件生成 .ldf 文件。在此代码中,假定可分辨名称处于文件的第一列,并且在所有剩余信头单元格循环,以确定 proxyAddresses 列。结果为 .csv 文件中的每个收件人对象一个条目,用于修改 proxyAddresses 属性。此方法同样可以通过最少的修改应用于其他目录属性。

Sub LDFfromCSV(Optional sAttribute As String = "proxyAddresses")
    ' Create the LDF file.
    sDefName = Application.DefaultFilePath & "\Import.ldf"
    sFile = Application.GetSaveAsFilename(InitialFilename:=sDefName, _
                                          Title:="Save LDF file")
    If sFile = "" Then
        Exit Sub
    Else
        Set fso = CreateObject("Scripting.FileSystemObject")
        Set f = fso.CreateTextFile(sFile, True)
    End If
  
    ' Determine the number of entries in the .csv file.
    nRows = ActiveSheet.UsedRange.Rows.Count
    nColumns = ActiveSheet.UsedRange.Columns.Count
    For i = 2 To nRows
        ' Specify the distinguished name of each recipient 
        ' for whom you want to modify a value.
        sVal = ActiveSheet.Cells(1, 1).Value & ": " _
             & ActiveSheet.Cells(i, 1).Value _
             & vbCrLf & "changetype: modify" & vbCrLf
        For j = 2 To nColumns
            sHdrValue = ActiveSheet.Cells(1, j).Value
            If sHdrValue = sAttribute Then
                ' You are now in the appropriate column.
                sVal = sVal & "replace: " & sHdrValue & vbCrLf _
                     & sHdrValue & ": " & ActiveSheet.Cells(i, j).Value _
                     & vbCrLf & "-" & vbCrLf
            End If
        Next
        sEntry = VBA.Replace(sVal, "\,", "\,", 1, -1, vbTextCompare)
        f.writeline sEntry
    Next
    f.Close
    Set f = Nothing
    Set fso = Nothing
End Sub

为了演示 .csv 文件如何转换为 .ldf 文件,使用 Csvde.exe 从“用户”容器导出对象。例如,键入以下命令:csvde -f export.csv -s <Domain Controller> -d "CN=Users,DC=<Domain>,DC=<com>"。在其他信息中,生成的文件包含所有已启用邮箱的用户帐户的 proxyAddresses 属性。然后,可以更改选定用户的 proxyAddresses 信息,并运行宏以生成 .ldf 文件。

通过 VBScript 更新收件人信息

如果要通过比 Ldifde.exe 和 Excel 宏更简单的方式更新收件人信息,可以在自定义管理工具中使用 ADSI 和 VBScript。以下代码示例说明如何使用 ADSI.User 对象来通过编程方式为用户帐户设置电子邮件地址。例如,可以在 ASP 页中使用此代码。记住,要包含用于权限检查和错误处理的自定义代码。该代码示例是 Active Directory 应用程序一个好的起点。

Const ADS_PROPERTY_CLEAR = 1
Const ADS_PROPERTY_UPDATE = 2
Const ADS_PROPERTY_APPEND = 3
Const ADS_PROPERTY_DELETE = 4

Set oUser = GetObject("LDAP://CN=testuser,CN=Users,DC=contoso,DC=com")
   
oUser.PutEx ADS_PROPERTY_UPDATE, "proxyAddresses", _
            Array("SMTP:olduseraddr@contoso.com", _
                  "SMTP:updateduser@contoso.com", _
                  "X400:c=us;a= ;p=Exchange;o=Exchange;s=updateduser;")
oUser.SetInfo
important重要提示:
与 Ldifde.exe 和 Csvde.exe 一样,必须先在计算机实验室中全面测试解决方案,然后再在生产环境中部署。ADSI 使用不当可能会破坏 ActiveDirectory 并强制您通过备份还原 Active Directory。确保域控制器和全局编录服务器拥有有效的备份。

迁移用户数据和日历信息

用户通常会坚持在迁移期间保留重要的邮件、约会、任务和联系人信息。要实现此目的,必须开发将现有数据移动到 Exchange 2003 的策略。数据可能会驻留在服务器的邮箱、讨论板和其他储存库中或客户端计算机的个人邮件存储中。

迁移基于服务器的数据

如果用户将大多数数据存储在服务器上,则必须开发代表用户迁移数据的策略。要这样做,需要解决下列问题:

  • 迁移到 Exchange 2003 时是否包含特殊资源帐户?   特殊帐户可能用于表示特定资源或特定设备,例如会议室、联机会议等。帐户日历用于预订相应的资源或设备,与安排会议的方式类似。使用 Exchange 迁移向导可以将特殊帐户及其数据移动到 Exchange 2003。 但是不保留配置。例如,该向导无法区分用户邮箱和资源邮箱。因此,必须手动调整配置。必须为负责该资源的用户授予对 Active Directory 用户和计算机中相应的已启用邮箱资源帐户的完全邮箱访问权限,并且必须在 Outlook 中连接到该资源邮箱,以便将其重新配置为资源帐户。在 Outlook 的“工具”菜单上,单击“选项”。在“常规”选项卡上,单击“日历选项”,然后单击“资源调度”。必须对所有被迁移的资源帐户重复上述步骤。
  • 服务器上是否有足够的磁盘空间来执行完全迁移?   Exchange 迁移向导的迁移文件需要临时磁盘空间。此外,Exchange 2003 还在以下两个位置存储被迁移的邮件:数据库和相应的事务日志文件。为迁移保留的磁盘空间应至少是计划移动的实际数据量所需磁盘空间的三倍。磁盘空间要求大于旧系统的磁盘空间要求,因为迁移工具无法处理单实例存储。单实例存储功能可以节省磁盘空间并加速邮件传递。发往五个收件人的单个邮件实例只存储一次,通过五个指针指向每个收件人的相应对象。但是,迁移工具(例如用户)将该对象视为单个邮件项。该邮件将提取五次,每个邮箱提取一次。因此,该邮件将向 Exchange 存储复制五次。
  • 是否具有代表用户迁移所有数据所需的访问权限?   用于访问源邮件系统(即迁移帐户)的帐户必须具有足够的访问权限来从所有邮箱中提取数据。这可能不仅仅需要对某个邮局的管理员权限。例如,在 NovellGroupWise 中,必须为迁移帐户授予对所有邮箱的 NovellGroupWise 代理权限。
  • 用户是否将加密邮件存储在基于服务器的邮箱中?   将邮件转换为 Exchange 格式需要进行解密,但是只有正确的用户可以执行解密。指导用户将所有加密邮件下载到其客户端,然后指出在迁移之后,可以使用基于 X.509 版本 3 标准的加密技术在 Outlook 中执行邮件加密。
  • Exchange 迁移向导是否支持现有邮件系统?   Exchange 迁移向导是主要的 Exchange 2003 迁移工具,应尽可能使用该工具。但是,如果不支持您的系统,请考虑将所有数据从服务器移动到用户的工作站,或使用非 Microsoft 迁移工具。
  • 是否可以在迁移之前合并邮件资源?   必须管理的邮局或邮件主机越少,迁移就越容易。但是,在现有环境中合并旧邮件系统可能像分别迁移每个系统一样复杂。在迁移期间合并邮件资源可能是更合适的方法。例如,可以将多个邮局迁移到同一 Exchange 2003 服务器。
  • 应迁移所有邮件还是只迁移最近的邮件?   可以在 Exchange 迁移向导中设置日期范围,用于指定希望保留邮件的期限。许多公司利用这个机会来消除旧电子邮件,这样可以节省服务器上的磁盘空间并缩短迁移时间。然而,建议设置与不迁移的数据有关的策略并通知用户,以便用户可以打印旧邮件、专用地址列表和其他信息(例如邮件处理规则)或将数据存储在个人邮件存档中。
  • 是否将通过计算机网络迁移数据?   如果无法在迁移之前将整个邮局或其他邮件储存库复制到本地 Exchange 服务器,请验证计算机网络上的可用网络带宽是否可以处理工作负荷。确保源系统和目标系统处于同一 LAN 中。尽可能避免通过 WAN 连接迁移数据,并在迁移之前执行维护和一致性检查。

迁移基于客户端的用户数据

如果用户在本地维护其电子邮件、联系人和日历信息,而不是在服务器上维护,则可以使用下列四种迁移方法:

  • 允许用户在迁移之前将其本地数据移回服务器   将数据移回服务器可能没有什么好处。这样会增大网络通信量,占用服务器上的磁盘空间,并且通常会使邮件管理员的工作难度增大。某些邮件系统(例如 POP3 主机)不支持此方法。
  • 让用户在旧邮件环境中使用 Outlook   如果本地磁盘驱动器有足够的存储容量,在旧环境中使用 Outlook 使用户可以将所有数据下载到个人文件夹存储。这样可以减少必须使用 Exchange 迁移向导移动的数据量,并避免出现与权限有关的问题或加密邮件的问题。用户可以继续在 Exchange 2003 组织中使用这些储存库。
  • 要求用户自行迁移基于客户端的数据   从管理员的角度来说,要求用户自行执行数据迁移是一个理想的方法,但是可能会使用户疲于应付。这可能会造成挫折感,增加支持人员的来电数,并降低工作效率。
  • 在每个用户的计算机上手动执行迁移   对于许多公司来说,让管理员或支持人员与用户一起执行基于客户端的数据转移,是一个比较可行的解决方案。

迁移工作组应用程序和工作流应用程序

工作组应用程序和工作流应用程序将使迁移方案变得复杂。事实上,如果存在工作组解决方案和工作流解决方案及其数据,则可能无法进行单步迁移。这可能会强制您进入 Exchange 2003 与旧邮件系统短期或长期共存和互操作的阶段,直到关键业务应用程序进行重新工程并部署在 Exchange 2003 组织中。工作组解决方案越复杂,迁移就越复杂,成本也越高。

确定工作组应用程序和工作流应用程序的迁移策略时,应解决下列问题:

  • 是否计划将协作应用程序迁移到 Exchange 2003 或其他平台?   可以通过下列两种常规方法迁移工作组应用程序和工作流应用程序:可以将这些解决方案移植到 Exchange 2003 或其他平台。将工作组解决方案迁移到非 Exchange 2003 系统可能是一种好方法,这样可以避免迁移计划中的互操作性要求。某些应用程序可以移植到数据库管理系统 (DBMS)(例如 Microsoft SQL Server™)与 Web 服务器(例如 Internet 信息服务 (IIS) 和 Microsoft .NET 平台)的组合。还可以使用 Office 系统中的技术(例如 Microsoft Windows SharePoint® Services)开发和实现协作应用程序,以便共享任务、联系人和日历。此外,Microsoft Office SharePoint Portal Server 2003 可以作为文档管理解决方案的基础。要详细了解 SharePoint 产品和技术,请访问 SharePoint 网站 (https://www.microsoft.com/sharepoint)。

  • 是否存在需要进行大量编程才能移植到新环境的关键工作组应用程序?   如果存在,则确定是迁移应用程序还是开发基于多阶段迁移的共存策略。

    note注意:
    如果无法及时迁移必要的工作组应用程序和工作流应用程序,则无法执行单步迁移。
  • 是否需要将公共论坛移植到 Exchange 2003?   如果需要,则确定一个用户,使其成为在 Exchange 2003 中为论坛创建的所有公用文件夹的所有者。还必须确定用户对公用文件夹的默认权限和特定权限,因为不会迁移权限设置。随后,必须使用 Exchange 系统管理器手动更正安全设置。如果现有论坛依靠自定义表单进行数据输入和显示,则使用 Outlook 窗体设计器来实现相应的 Outlook 窗体,并将此窗体与相应的公用文件夹关联。