USMT(微软用户状态迁移工具) 入门指南

前言

以下知识来自,我实际经验总结,官网文档不会这样讲.

如有遗漏或错误,请指正.

如有新的想法,请评论,我将添加到此文,并以您的昵称为来源标注在文中.

自定义XML语法

基础

语法:

txt 复制代码
path\ [filename]

例如:

txt 复制代码
%SYSTEMROOT%\MyVideo\ [邓文怡和老师.mp4]

这会迁移或排除C:\\MyVideo\邓文怡和老师.mp4,迁移或排除取决于上级标签.

通配符

path支持通配符*

语法:

txt 复制代码
path\* [filename]

例如:

txt 复制代码
%SYSTEMROOT%\MyVideo\* [邓文怡和老师.mp4]

这会迁移或排除 C:\\MyVideo\文件夹里面的任何邓文怡和老师.mp4文件,包括子目录中的文件.

\[\]也支持通配符

一旦path[]的通配符联合起来使用,这就有趣了.

语法:

txt 复制代码
path\* [*]

例如:

txt 复制代码
%SYSTEMROOT%\MyVideo\* [*]

这会迁移或排除C:\\MyVideo\文件夹里面的任何目录和任何文件,当然包括子目录.

\*通配符还有一种用法

txt 复制代码
path\* [*.mp4]

例如:

txt 复制代码
%SYSTEMROOT%\MyVideo\* [*.mp4]

这会迁移或排除C:\\MyVideo\文件夹里面的,任何包含.mp4文件的目录和任何.mp4文件,当然包括子目录中的文件.

迁移注册表

语法:

txt 复制代码
path\ [item]

例如:

txt 复制代码
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\ [Path]

这会迁移或排除HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\的项目Path

总体上,和文件的操作的语法差不多,其他的不再描述.

默认会迁移除系统盘外的其他磁盘

如果你想屏蔽D盘,可以使用如下xml:


⚠️注意,D盘很有可能是对于源计算机系统上的盘符.

也就是说,在源计算机上它叫做D盘,虽然在目标计算机上不是.

特别是针对脱机迁移(你无法查看源计算机上盘符的情况下),你应该在执行ScanState.exe生成迁移储存USMT.MIG时,添加/listfiles参数将被迁移的文件路径输出到文本文件中,里面带有盘符,你可以检查.


xml 复制代码
<?xml version='1.0' encoding='utf-8'?>
<migration urlid="http://www.microsoft.com/migration/1.0/migxmlext/unconditionalExcludeDrive">
    <component type="Documents" context="System">
        <displayName>File Migration</displayName>
        <role role="Data">
            <rules context="System">
                <unconditionalExclude>
                    <objectSet>
                        <pattern type="File">D:\*[*]</pattern>
                    </objectSet>
                </unconditionalExclude>
            </rules>
        </role>
    </component>
</migration>

由于D盘的不确定性,我的目的是排除大文件,我使用了如下xml排除任何驱动器下的文件.

xml 复制代码
<?xml version='1.0' encoding='utf-8'?>
<migration urlid="http://www.microsoft.com/migration/1.0/migxmlext/unconditionalExcludeFile">
    <component type="Documents" context="System">
        <displayName>File Migration</displayName>
        <role role="Data">
            <rules context="System">
                <unconditionalExclude>
                    <objectSet>
                        <script>MigXmlHelper.GenerateDrivePatterns("* [Win11SystemNotDeleteOrEdit.vhdx]", "Fixed")</script>
                        <script>MigXmlHelper.GenerateDrivePatterns("* [Win11SystemNotDeleteOrEdit1.vhdx]", "Fixed")</script>
                    </objectSet>
                </unconditionalExclude>
            </rules>
        </role>
    </component>
</migration>

尽可能的使用环境变量

你想象中的Windows环境变量不一定会在xml文件中生效,你应该依据此列表.
https://learn.microsoft.com/zh-cn/windows/deployment/usmt/usmt-recognized-environment-variables

利用MigXML.xsd对xml语法验证

你可以在vscode中实现它.

  1. 安装插件 XML由RedHat.com开发的.
  2. 在xml头部添加xmlns:xsi xsi:noNamespaceSchemaLocation如下所示:
    ⚠️ xsi:noNamespaceSchemaLocation填写的是MigXML.xsd文件路径,确保可访问.
xml 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<migration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="MigXML.xsd"
    urlid="http://www.microsoft.com/migration/1.0/migxmlext/reg">
    ......
</migration>
相关推荐
深圳恒讯12 分钟前
菲律宾云服务器与传统VPS的架构差异
运维·服务器·架构
Mininglamp_271817 分钟前
Claude Code 封禁中国开发者之后:本地 AI 编程工具的替代方案实测
开发语言·人工智能·windows·开源软件·ai-native
蓝天下的守望者23 分钟前
svt_apb_if里的宏定义问题
运维·服务器·数据库
小林ixn26 分钟前
从“玩具工具”到“跨语言利器”:MCP 协议实战解析
运维·服务器·网络
贾斯汀frank39 分钟前
C# 15 类型系统改进:Union Types
开发语言·windows·c#
小顿的企业观察1 小时前
中企出海战略规划,正在从“走出去”转向“走进去”
大数据·运维·人工智能·产品运营·制造
数智化转型推荐官2 小时前
2026统一身份管理系统五大发展趋势解读
java·运维·微服务
看菜鸡互2 小时前
探索用 SlideML 让大模型生成 PPT 的实验方法
java·运维
YHHLAI3 小时前
Agent 智能体开发实战 · 第四课:完整工具集 —— 打造 AI 编程 Agent 的工具箱
人工智能·windows·microsoft
liguojun20254 小时前
篮球馆自动计时收费系统:从规则配置到自动结算的全流程拆解
java·大数据·运维·人工智能·物联网·1024程序员节