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


    前言

    以下知识来自,我实际经验总结,官网文档不会这样讲.
    如有遗漏或错误,请指正.
    如有新的想法,请评论,我将添加到此文,并以您的昵称为来源标注在文中.

    自定义XML语法

    基础

    语法:

    path\ [filename]
    

    例如:

    %SYSTEMROOT%\MyVideo\ [邓文怡和老师.mp4]
    

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

    通配符

    path支持通配符*
    语法:

    path\* [filename]
    

    例如:

    %SYSTEMROOT%\MyVideo\* [邓文怡和老师.mp4]
    

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

    []也支持通配符

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

    path\* [*]
    

    例如:

    %SYSTEMROOT%\MyVideo\* [*]
    

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

    [*]通配符还有一种用法

    path\* [*.mp4]
    

    例如:

    %SYSTEMROOT%\MyVideo\* [*.mp4]
    

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

    迁移注册表

    语法:

    path\ [item]
    

    例如:

    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参数将被迁移的文件路径输出到文本文件中,里面带有盘符,你可以检查.


    
    <migration urlid="http://www.microsoft.com/migration/1.0/migxmlext/unconditionalExcludeDrive">
        <component type="Documents" context="System">
            <displayName>File MigrationdisplayName>
            <role role="Data">
                <rules context="System">
                    <unconditionalExclude>
                        <objectSet>
                            <pattern type="File">D:\*[*]pattern>
                        objectSet>
                    unconditionalExclude>
                rules>
            role>
        component>
    migration>
    

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

    
    <migration urlid="http://www.microsoft.com/migration/1.0/migxmlext/unconditionalExcludeFile">
        <component type="Documents" context="System">
            <displayName>File MigrationdisplayName>
            <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文件路径,确保可访问.
    
    <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>
    
  • 相关阅读:
    selenium——chromdriver版本请及时更新
    链表例题小总结:
    WPF文本框中加提示语
    ctfshow 萌新赛 给她
    python
    基于web、dns、nfs的综合实验
    【知识分享】Java获取当前周的开始时间结束时间
    强化学习笔记
    iPhone 14 Pro/Max出大问题:从旧款机型传输数据后卡死黑屏无法开机!
    kuangbin 斜率优化题单 代码
  • 原文地址:https://blog.csdn.net/Deng_Xian_Sheng/article/details/139780203