用户状态迁移工具 (USMT) 常见问题
以下部分讨论了运行 USMT 10.0 工具时可能看到的常见问题。 USMT 生成日志文件,以进一步详细说明迁移过程中发生的任何错误。 这些日志可用于排查迁移失败。
确定迁移问题的一般准则
在迁移过程中遇到问题或错误消息时,可以使用以下一般准则来帮助确定问题的来源:
检查 ScanState、LoadState 和 UsmtUtils 日志,以获取确切的 USMT 错误消息和 Windows® 应用程序编程接口(API)错误消息。 有关 USMT 返回代码和错误消息的详细信息,请参阅 返回代码。 可以通过在命令提示符窗口中>
net.exe helpmsg <error_number>
<键入error_number错误消息生成的错误代码号来获取有关任何列出的 Windows 系统错误代码的详细信息。 有关系统错误代码的详细信息,请参阅系统错误代码 (0-499)。在大多数情况下, ScanState 和 LoadState 日志指示 USMT 迁移失败的原因。 建议在测试迁移时使用
/v:5
此选项。 可以在生产迁移中调整此详细级别;但是,减少详细级别可能会使诊断在生产迁移过程中遇到的故障更加困难。 如果希望日志文件输出转到调试器,则可以使用高于 5 的详细级别。注意
使用
/v:5
选项运行 ScanState 和 LoadState 工具会创建详细的日志文件。 尽管此选项使日志文件很大,但额外详细信息可帮助你确定发生迁移错误的位置。将
/Verify
选项与 UsmtUtils 工具一起使用,以确定压缩迁移存储中的任何文件是否已损坏。 有关详细信息,请参阅 验证压缩迁移存储的条件。将
/Extract
选项与 UsmtUtils 工具结合使用,从压缩的迁移存储中提取文件。 有关详细信息,请参阅 从压缩的 USMT 迁移存储中提取文件。使用
/Progress
用于监视迁移的选项创建进度日志。对于源计算机和目标计算机,获取操作系统信息以及 Internet Explorer 和其他任何相关程序等应用程序的版本。 然后验证重现问题所需的确切步骤。 此信息可以帮助你了解问题,并在测试环境中重现问题。
运行 LoadState 工具后注销。 某些设置(如字体、桌面背景和屏幕保存程序设置)在下次最终用户登录之前才会生效。
在运行 ScanState 或 LoadState 工具之前关闭所有应用程序。 如果在 ScanState 或 LoadState 进程中运行某些应用程序,USMT 可能不会迁移某些数据。 例如,如果Microsoft Outlook® 处于打开状态,USMT 可能无法迁移 PST 文件。
注意
除非指定
/c
选项,否则 USMT 将无法迁移文件或设置。 指定/c
选项时,USMT 将忽略错误。 但是,在遇到未迁移的文件时,它会记录错误。
用户帐户问题
以下部分介绍常见的用户帐户问题。 展开该部分以查看建议的解决方案。
我在目标计算机上创建本地帐户时遇到问题
解决方法: 有关创建帐户和迁移本地帐户的详细信息,请参阅 “迁移用户帐户”。
并非所有用户帐户都已迁移到目标计算机
原因/解决方法 此问题有两个可能的原因:
在 Windows 7、Windows 8 或 Windows 10 上运行 ScanState 和 LoadState 工具时,必须从具有管理凭据的帐户以管理员模式运行它们,以确保迁移所有指定的用户。 若要在管理员模式下运行,请执行以下操作:
选择“启动>所有程序>附件”。
右键单击“命令提示符”。
选择“以管理员身份运行”。
指定 LoadState.exe 或 ScanState.exe 命令。
如果未在管理员模式下运行 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 命令删除用户配置文件将删除与该配置文件关联的文件夹和文件,但不会删除注册表项。
解决方法:若要删除用户配置文件,请使用控制面板中的“用户帐户”项。 若要更正用户配置文件的不完整删除,请执行以下操作:
通过在提升的命令提示符处键入 regedit.exe ,打开注册表编辑器。
导航到
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
。每个用户配置文件存储在系统标识符密钥下
ProfileList
。删除尝试删除的用户配置文件的密钥。
迁移之前未加密的文件现在使用用于运行 LoadState 工具的帐户进行加密
原因:使用选项迁移加密文件和加密文件系统(EFS)证书,运行 /EFS:copyraw
ScanState 工具。 加密属性是在迁移的文件夹上设置的,但在迁移之前,该属性已从该文件夹的文件内容中删除。
解决方法: 在使用 ScanState 工具进行包含加密文件和 EFS 证书的迁移之前,可以在命令提示符下运行密码工具,查看和更改文件和文件夹上的加密设置。 必须从包含未加密文件的文件夹中删除加密属性,或加密加密文件夹中所有文件的内容。
若要从已错误迁移的文件中删除加密,必须使用用于运行 LoadState 工具的帐户登录到计算机,然后从受影响的文件中删除加密。
LoadState 工具将错误报告为返回代码 71 和日志文件中的 Windows 错误 2202
原因: 在本地用户配置文件的脱机迁移过程中,计算机名称已更改。
解决方法:运行 LoadState 工具为用户指定新名称时,/mu
可以使用该选项。 例如,
LoadState.exe /i:MigApp.xml /i:MigDocs.xml \\server\share\migration\mystore
/progress:Progress.log /l:LoadState.log /mu:fareast\user1:farwest\user1
命令行问题
以下部分介绍常见的命令行问题。 展开该部分以查看建议的解决方案。
我收到以下错误消息:“使用错误:不能使用任何超过 256 个字符的命令行选项指定文件路径。
原因: 在某些情况下,即使未指定长存储或文件路径,也可能会收到此错误消息,因为路径长度是根据绝对路径计算的。 例如,如果从 C:\Program Files\USMT40 运行**ScanState**.exe /o store
命令,则将 C:\Program Files\USMT40 中的每个字符添加到“store”的长度以获取路径的长度。
解决方法: 确保总路径长度不超过 256 个字符。 总路径长度包括存储路径和当前目录。
我收到以下错误消息:“USMT 无法创建日志文件。 确保对日志目录具有写入访问权限。
原因: 如果从共享网络资源运行 ScanState 或 LoadState 工具,如果未指定 /l
,将收到此错误消息。
解决方法: 若要在此方案中解决此问题,请指定 /l:ScanState.log
或 /l:LoadState.log
选项。
XML 文件问题
以下部分介绍常见的 XML 文件问题。 展开该部分以查看建议的解决方案。
我使用此选项 /genconfig
创建Config.xml文件,但只看到MigApp.xml中的几个应用程序和组件。 为什么Config.xml不包含所有相同的应用程序?
原因:Config.xml将仅包含两个.xml文件中的操作系统组件、应用程序和用户文档部分,并在运行/genconfig
选项时安装在计算机上。 否则,这些应用程序和组件不会显示在 Config.xml 文件中。
解决方法: 在运行 /genconfig
选项之前,在计算机上安装所有所需应用程序。 然后使用所有.xml文件运行 ScanState.exe 。 例如,运行以下命令:
ScanState.exe /genconfig:Config.xml /i:MigDocs.xml /i:MigApp.xml /v:5 /l:ScanState.log
我在创作的自定义.xml文件中遇到问题,无法验证语法是否正确
解决方法: 可以将 XML 架构文件 MigXML.xsd 加载到 XML 创作工具中。 MIgXML.xsd 包含在 USMT 中。 有关示例,请参阅 Visual Studio 开发中心。 然后,在创作工具中加载.xml文件,以查看是否存在语法错误。 有关使用 XML 元素的详细信息,请参阅 USMT XML 参考。
我使用的是 MigXML 帮助程序函数,但迁移无法按预期的方式工作。 如何实现排查此问题?
原因: 通常,此问题由帮助程序函数中使用的语法不正确引起。 会收到成功返回代码,但要迁移的文件未收集或应用,或者未按预期方式收集或应用。
解决方法:应在 ScanState 或 LoadState 日志中搜索包含 MigXML 帮助程序函数或 MigXML 帮助程序函数标题的组件名称,以便可以在日志文件中找到相关警告。
迁移问题
以下部分介绍常见的迁移问题。 展开该部分以查看建议的解决方案。
我指定要排除的文件仍在迁移中
原因: 可能有另一个规则包括文件。 如果有更具体的规则或冲突规则,这些文件将包含在迁移中。
解决方法:有关详细信息,请参阅日志文件中的冲突和优先级和诊断日志部分。
我指定了将文件夹移动到目标计算机上的特定位置的规则,但尚未正确迁移
原因: XML 语法中可能存在错误。
解决方法: 可以使用 USMT XML 架构(MigXML.xsd)编写和验证迁移.xml文件。 另请参阅以下文章中的 XML 示例:
LoadState 完成后,新桌面背景不会显示在目标计算机上
此问题有三个典型原因。
原因:在目标计算机重启之前,LoadState 不会应用某些设置,例如字体、桌面背景和屏幕保护程序设置。
解决方法: 若要解决此问题,请注销,然后重新登录以查看迁移的桌面背景。
我在迁移中包含MigApp.xml,但某些 PST 文件未迁移
原因:MigApp.xml文件仅迁移链接到 Outlook 配置文件的 PST 文件。
解决方法: 若要迁移未链接到 Outlook 配置文件的 PST 文件,必须创建单独的迁移规则来捕获这些文件。
USMT 不会迁移“开始”菜单布局
说明: 你正在使用 USMT 将配置文件从 Windows 10 的一个安装迁移到不同硬件上的 Windows 10 的另一个安装。 迁移后,用户登录到新设备,并且没有以前配置的开始菜单布局。
原因: Windows 10 版本 1607 及更高版本中的“开始”菜单中的代码更改与此 USMT 函数不兼容。
解决方法: 可以使用以下解决方法:
用户登录后,使用以下 Windows PowerShell 命令备份“开始”布局。 如果需要,可以指定其他路径:
Export-StartLayout -Path "C:\Layout\user1.xml"
使用 USMT 迁移用户的配置文件。
在用户登录到新设备之前,请使用以下 Windows PowerShell 命令导入“开始”布局:
Import-StartLayout -LayoutPath "C:\Layout\user1.xml" -MountPath %systemdrive%
此解决方法更改默认用户的“开始”布局。 解决方法不会扩展到大规模迁移或多用户设备,但它可能会取消阻止某些方案。 如果其他用户将登录到设备,则应从默认用户配置文件中删除layoutmodification.xml。 否则,登录到该设备的所有用户都将使用导入的“开始”屏幕布局。
脱机迁移问题
以下部分介绍常见的脱机迁移问题。 展开该部分以查看建议的解决方案。
我的某些系统设置不会在脱机迁移中迁移
原因: 脱机迁移不支持某些系统设置,例如桌面背景和网络打印机。 有关详细信息,请参阅 USMT 迁移哪些内容?
解决方法: 在脱机迁移中,必须手动还原这些系统设置。
ScanState 工具失败,返回代码 26
原因: 返回代码 26 的常见原因是临时配置文件在源计算机上处于活动状态。 此配置文件映射到 c:\users\temp。 ScanState 日志显示 MigStartupOfflineCaught 异常,其中包含消息 “用户配置文件重复 SID”错误。
解决方法:可以重启计算机以删除临时配置文件,也可以将 MIG_FAIL_ON_PROFILE_ERROR=0 设置为跳过错误并排除临时配置文件。
包含和排除用于迁移用户配置文件的规则与联机相同的脱机工作
原因: 脱机时,无法查询 DNS 服务器来解析用户名和 SID 映射。
解决方法:运行 ScanState 工具时,使用安全标识符(SID)包括用户。 例如:
ScanState.exe /ui:S1-5-21-124525095-708259637-1543119021*
SID 末尾的通配符 \ 也将迁移 SID_Classes 密钥。
还可以对标识通用用户或组的 SID 使用模式。 例如,可以使用此选项 /ue:*-500
排除本地管理员帐户。 有关 Windows SID 的详细信息,请参阅 安全标识符。
在 64 位系统上运行 ScanState 工具后,擦除磁盘的脚本失败
原因:在 ScanState 工具完成运行后,不会卸载 HKLM 注册表配置单元。
解决方法:在 ScanState 工具完成运行后,在命令提示符处重新启动计算机或卸载注册表配置单元。 例如,在命令提示符处输入:
reg.exe unload hklm\$dest$software
硬链接迁移问题
以下部分介绍常见的硬链接迁移问题。 展开该部分以查看建议的解决方案。
EFS 文件不会还原到新分区
原因: EFS 文件无法移动到具有硬链接的新分区。 /efs:hardlink
命令行选项仅适用于在同一分区上迁移的文件。
解决方法: 使用 /efs:copyraw
命令行选项在迁移期间复制 EFS 文件,而不是创建硬链接,或手动从硬链接存储复制 EFS 文件。
ScanState 工具无法删除以前的硬链接迁移存储
原因: 迁移存储包含指向锁定文件的硬链接。
解决方法: 使用 UsmtUtils 工具删除存储或更改存储名称。 例如,在命令提示符处输入:
UsmtUtils.exe /rd <storedir>
还应重新启动计算机。
数据收集
如果需要 Microsoft 支持方面的帮助,建议按照使用 TSS 针对与部署相关的问题收集信息中所述的步骤收集信息。