一般问题

下部分讨论在运行 用户状态迁移工具 (USMT) 5.0 工具时可能遇到的常见问题。USMT 会生成日志文件,这些文件会进一步详细描述在迁移过程中出现的任何错误。这些日志可以用来解决迁移失败。

本主题内容

用户帐户问题

命令行问题

XML 文件问题

迁移问题

脱机迁移问题

硬链接迁移问题

确定迁移问题的常规指南

在迁移过程中遇到问题或错误消息时,可以使用以下常规指南帮助确定问题的根源:

  • 查看 TechNet 上的 用户状态迁移工具 (USMT) 5.0 用户指南 的内容更新。

  • 检查 ScanState、LoadState 和 UsmtUtils 日志,以便获取确切的 USMT 错误消息和 Windows® 应用程序编程接口 (API) 错误消息。有关 USMT 返回代码和错误消息的详细信息,请参阅返回代码。通过在命令行键入 net helpmsg,可以获得有关 Windows API 错误消息的详细信息。

    大多数情况下,ScanState 和 LoadState 日志会指出 USMT 迁移失败的原因。建议在测试迁移时使用 /v*:5* 选项。可以在生产迁移时调整此详细级别;不过,降低详细级别可能会导致更难诊断生产迁移过程中遇到的故障。 如果希望日志文件输出至调试程序,可以使用高于 5 的详细级别。

    note备注
    使用 /v:5 选项运行 ScanState 和 LoadState 工具可以创建详细的日志文件。尽管此选项会使日志文件变得很大,但提供额外的详细信息有助于确定迁移错误发生的位置。

  • 使用 UsmtUtils 工具中的 /verify 选项确定是否损坏了压缩迁移存储中的任何文件。有关详细信息,请参阅验证压缩迁移存储的条件

  • 使用 UsmtUtils 工具中的 /extract 选项从压缩迁移存储中提取文件。有关详细信息,请参阅从压缩 USMT 迁移存储中提取文件

  • 使用 /progress 选项创建进度日志,以便监视迁移。

  • 对于源计算机和目标计算机,应获取操作系统的信息以及诸如 Internet Explorer® 等应用程序和任何其他相关程序的版本。然后验证重现问题所需的确切步骤。此信息可帮助你了解发生了什么错误,并在测试环境中重现该问题。

  • 在运行 LoadState 工具后注销。某些设置(如字体、桌面背景和屏幕保护程序设置)在最终用户下次登录时才会生效。

  • 在运行 ScanState 或 LoadState 工具前关闭所有应用程序。如果在执行 ScanState 或 LoadState 过程中正在运行某些应用程序,USMT 可能无法迁移某些数据。例如,如果 Microsoft Outlook® 处于打开状态,USMT 可能无法迁移 PST 文件。

    note备注
    没有指定 /c 选项时,如果 USMT 无法迁移某个文件或设置,则将失败。当指定 /c 选项时,USMT 将忽略错误。不过,在遇到某个文件正在使用中而未被迁移时会记录一个错误。

用户帐户问题

以下部分介绍了常见的用户帐户问题。展开此部分查看推荐的解决方案。

我在目标计算机上创建本地帐户时遇到问题。

**解决方案:**有关创建帐户和迁移本地帐户的详细信息,请参阅迁移用户帐户

并非所有用户帐户都已迁移到目标计算机。

**原因/解决方案:**此问题可能是由于以下两种原因造成的:

在 Windows Vista 上运行 ScanState 工具或在 Windows 7 或 Windows(R) 8 上运行 ScanState 和 LoadState 工具时,必须使用具有管理凭据的帐户在管理员模式下运行它们,以确保迁移所有指定的用户。这是因为用户访问控制 (UAC) 在 Windows Vista、Windows 7 和 Windows 8 中都处于打开状态。要以管理员模式运行:

  1. 单击**“开始”**。

  2. 单击**“所有程序”**。

  3. 单击“附件”。

  4. 右键单击**“命令提示符”**。

  5. 单击**“以管理员身份运行”**。

然后指定 LoadState 或 ScanState 命令。如果不在管理员模式下运行 USMT,迁移过程中将只包含处于登录状态的用户配置文件。

计算机上未使用的任何用户帐户都不会被迁移。例如,如果将 User1 添加到计算机,但 User1 从未登录过,则 USMT 不会迁移 User1 帐户。

我排除的用户帐户已被迁移到目标计算机。

**原因:**你指定的命令可能存在冲突的 /ui/ue 选项。如果使用 /ui 选项指定某用户,同时又使用 /ue/uel 选项排除该用户,则该用户将包括在迁移中。例如,如果指定 /ui:domain1\* /ue:domain1\user1,则 User1 将被迁移,因为 /ui 选项优先。

**解决方案:**有关如何同时使用 /ui/ue 选项的详细信息,请参阅ScanState 语法主题中的示例。

我使用了 /uel 选项,但许多帐户仍包括在迁移中。

原因: /uel 选项依赖于用户的 NTUser.dat 文件的最后修改日期。在某些情况下,此最后修改日期可能与用户的最后登录日期不匹配。

**解决方案:**这是 /uel 选项的局限性。可能需要使用 /ue 选项手动排除这些用户。

在迁移测试过程中,LoadState 工具报告一个返回代码为 71 的错误,并且未能还原用户配置文件。

**原因:**在迁移测试过程中,如果在测试计算机上运行 ScanState 工具,然后删除用户配置文件,以便在同一计算机上测试 LoadState 工具,则在注册表中可能存在冲突的注册表项。使用 net use 命令删除用户配置文件,将删除与该配置文件关联的文件夹和文件,但不会删除该注册表项。

**解决方案:若要删除用户配置文件,请使用控制面板中的“用户帐户”**项。若要纠正不完全的用户配置文件删除:

  1. 在提升权限的命令提示符下键入 regedit 打开注册表编辑器。

  2. 导航到 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList

    每个用户配置文件都存储在 ProfileList 下的系统标识符注册表项中。

  3. 删除你要尝试删除的用户配置文件的注册表项。

迁移前未加密的文件现在由用于运行 LoadState 工具的帐户加密。

原因: 已使用 /efs:copyraw 选项运行 ScanState 工具以迁移加密的文件和 EFS 证书。已在被迁移的文件夹上设置加密属性,但在迁移前从该文件夹的文件内容中删除了该属性。

**解决方案:**在使用 ScanState 工具迁移加密的文件和 EFS 证书前,可以在命令提示符下运行 Cipher 工具查看和更改文件和文件夹上的加密设置。必须从包含未加密文件的文件夹中删除加密属性,或对已加密文件夹中所有文件的内容进行加密。

若要从已被错误迁移的文件中删除加密,必须使用运行 LoadState 工具的帐户登录到计算机,然后从受影响的文件中删除加密。

LoadState 报告一个返回代码为 71 的错误和一个日志文件中的 Windows 错误 2202。

**原因:**在脱机迁移本地用户配置文件期间,更改了计算机名称。

**解决方案:**在运行 LoadState 工具指定新的用户名时,可以使用 /mu 选项。例如,

loadstate /i:migapp.xml /i:migdocs.xml \\server\share\migration\mystore 
/progress:prog.log /l:load.log /mu:fareast\user1:farwest\user1

命令行问题

以下部分介绍了常见的命令行问题。展开此部分以查看推荐解决方案。

我收到以下错误消息:“Usage Error: You cannot specify a file path with any of the command-line options that exceeds 256 characters.”

原因:在某些情况下,即使没有指定很长的存储或文件路径,也可能会收到此错误消息。这是因为路径长度是根据绝对路径计算的。例如,如果从 C:\Program Files\USMT40 运行 scanstate.exe /o store 命令,则“C:\Program Files\USMT40”中的每个字符都会添加到“store”的长度上,从而得出路径的长度。

**解决方案:**确保总路径长度(存储路径加上当前目录)不超过 256 个字符。

我收到以下错误消息:“USMT was unable to create the log file(s).Ensure that you have write access to the log directory.”

**原因:**如果从共享网络资源运行 ScanState 或 LoadState 工具,则在没有指定 /l 时会收到此错误消息。

**解决方案:**在这种情况下,若要解决此问题 ,请指定 /l:scan.log/l:load.log 选项。

XML 文件问题

以下部分介绍了常见的 XML 文件问题。展开此部分以查看推荐解决方案。

我使用 /genconfig 选项创建了一个 Config.xml 文件,但只看到 MigApp.xml 文件中的少数应用程序和组件。为什么 Config.xml 不包含所有相同的应用程序?

**原因:**在运行 /genconfig 选项时,Config.xml 将仅包含两个 .xml 文件中都存在且已安装在计算机上的操作系统组件、应用程序和用户文档部分。否则,这些应用程序和组件不会在 Config.xml 文件中显示。

**解决方案:**在运行 /genconfig 选项前,在计算机上安装所有必要的应用程序。然后使用所有 .xml 文件运行 ScanState。例如,运行以下内容:

scanstate /genconfig:config.xml /i:migdocs.xml /i:migapp.xml /v:5 /l:scanstate.log

我编写的自定义 .xml 文件出现问题,并且无法验证语法是否正确。

**解决方案:**可以将 USMT 中包括的 XML 架构 (MigXML.xsd) 加载到 XML 编写工具中。有关示例,请参阅“Visual Studio 开发中心”。然后,将 .xml 文件加载到编写工具中以查看是否有语法错误。另外,有关使用 XML 元素的详细信息,请参阅 USMT XML 参考

我使用的是 MigXML helper 函数,但迁移不像我预期的那样执行。 如何解决此问题?

**原因:**通常,此问题是由于 helper 函数中使用了不正确的语法造成的。你收到“成功”返回代码,但没有收集或应用要迁移的文件,或者未按照你预期的方式收集或应用。

**解决方案:**应搜索 ScanState 或 LoadState 日志,查找包含 MigXML helper 函数的组件名称或 MigXML helper 函数标题,这样可以在日志文件中找到相关的警告。

迁移问题

以下部分介绍了常见的迁移问题。展开此部分以查看推荐解决方案。

我指定排除的文件仍在迁移。

**原因:**可能是文件中包括其他规则。如果有更具体的规则或者冲突规则,则将在迁移中包含这些文件。

解决方案: 有关详细信息,请参阅冲突和优先级以及日志文件中的“诊断日志”部分。

我已指定规则将某个文件夹移至目标计算机上的特定位置,但未正确迁移该文件夹。

原因: 这可能是 XML 语法中的错误。

**解决方案:**你可以使用 USMT XML 架构 (MigXML.xsd) 编写并验证迁移 .xml 文件。另请参阅以下主题中的 XML 示例:

冲突和优先级

排除文件和设置

重新路由文件和设置

包含文件和设置

自定义 XML 示例

在 LoadState 完成后,目标计算机上没有出现新的桌面背景。

此问题有三种典型原因。

原因 #1:一些设置(如字体、桌面背景和屏幕保护程序设置)直到目的地计算机重启之后才会被 LoadState 应用。

解决方案: 若要解决此问题,请注销,然后重新登录以查看迁移的桌面背景。

原因 #2: 如果源计算机运行的是 Windows® XP 且桌面背景存储在 Drive:\WINDOWS\Web\Wallpaper 文件夹(即 Windows XP 中存储桌面背景的默认文件夹)中,则不会迁移桌面背景。相反,目标计算机将具有默认的 Windows® 桌面背景。即使桌面背景是添加到 \WINDOWS\Web\Wallpaper 文件夹中的自定义图片,也会出现这种情况。但是,如果最终用户将保存在其他位置(例如“My Pictures”)的某个图片设置为桌面背景,则该桌面背景将迁移。

解决方案: 确保要迁移的桌面背景图像不在源计算机上的 \WINDOWS\Web\Wallpaper 文件夹中。

原因 #3: 如果未使用具有管理凭据的帐户在 Windows XP 上运行 ScanState,则某些操作系统设置不会迁移。例如,桌面背景设置、屏幕保护程序选择、调制解调器选项、媒体播放器设置,以及远程访问服务 (RAS) 连接电话簿 (.pbk) 文件和设置将不会迁移。

解决方案: 使用具有管理凭据的帐户运行 ScanState 和 LoadState 工具。

我已将 MigApp.xml 包括在迁移中,但一些 PST 文件没有迁移。

原因: MigApp.xml 文件仅迁移与 Outlook 配置文件链接的 PST 文件。

解决方案: 若要迁移未与 Outlook 配置文件链接的 PST 文件,则必须创建一个单独的迁移规则捕获这些文件。

脱机迁移问题

以下部分介绍了常见的脱机迁移问题。展开此部分以查看推荐解决方案。

我的某些系统设置未在脱机迁移中迁移。

**原因:**脱机迁移不支持某些系统设置,如桌面背景和网络打印机。有关详细信息,请参阅USMT 将迁移哪些内容?

**解决方案:**在脱机迁移中,这些系统设置必须手动还原。

ScanState 工具失败,返回代码为 26。

**原因:**返回代码 26 的常见原因是源计算机上的临时配置文件处于活跃状态。此配置文件映射到 c:\users\temp。ScanState 日志显示一个 MigStartupOfflineCaught 意外错误,包含消息“用户配置文件复制 SID 错误。”

**解决方案:**可以重新启动计算机来去掉临时配置文件,或者可以设置 MIG_FAIL_ON_PROFILE_ERROR=0 跳过该错误并排除该临时配置文件。

迁移用户配置文件的包含和排除规则在脱机时的效果与联机时不同。

**原因:**脱机时,DNS 服务器不需要解决用户名和 SID 映射。

**解决方案:**在运行 ScanState 工具时,使用安全标识符 (SID) 包含用户。例如:

Scanstate /ui:S1-5-21-124525095-708259637-1543119021*

SID 结尾的通配符 (*) 也将迁移 SID_Classes 项。

还可以使用标识通用用户或组的 SID 模式。例如,可以使用 /ue:*-500 选项来排除本地管理员帐户。有关 Windows SID 的详细信息,请参阅此 Microsoft 网站

在 64 位系统上运行 ScanState 工具后,我的脚本擦除磁盘失败。

**原因:**ScanState 工具运行结束后,HKLM 注册表配置单元未卸载。

**解决方案:**ScanState 工具运行结束后,在命令提示符下重新启动计算机或卸载注册表配置单元。例如,在命令提示符下键入:

reg.exe unload hklm\$dest$software

硬链接迁移问题

以下部分介绍了常见的硬链接迁移问题。展开此部分以查看推荐解决方案。

EFS 文件未还原到新的分区。

原因:EFS 文件不能用硬链接移动到新的分区。/efs:hardlink 命令行选项仅适用于在同一分区中迁移的文件。

**解决方案:**使用 /efs:copyraw 命令行选项在迁移期间复制 EFS 文件,而不是创建硬链接,或者从硬链接存储中手动复制 EFS 文件。

ScanState 工具无法删除一个以前的硬链接迁移存储。

**原因:**该迁移存储包含到锁定文件的硬链接。

**解决方案:**使用 UsmtUtils 工具删除该存储或者更改该存储的名称。例如,在命令提示符下键入:

USMTutils /rd <storedir>

你还应该重新启动计算机。

另请参阅

其他资源

用户状态迁移工具 (USMT) 疑难解答
常见问题
返回代码
UsmtUtils 语法