排除文件和设置

当你指定迁移 .xml 文件(MigApp.xml、Migdocs 和 MigUser.xml)时,用户状态迁移工具 (USMT) 10.0 就会像 USMT 迁移了什么?中所讨论的那样,迁移列出的设置和组件。你可以创建自定义 .xml 文件以进一步指定迁移中应包含或排除的内容。此外,你可以创建 Config.xml 文件,从迁移中排除整个组件。但是,你不能使用迁移 .xml 文件或 Config.xml 文件排除用户。在 ScanState 工具的命令行中使用用户选项是指定包含和排除具体用户的唯一方法。有关详细信息,请参阅 ScanState 语法

本主题内容:

  • 创建自定义 .xml 文件。你可以使用以下元素指定要排除的内容:

    • 包含和排除:你可以使用 <include> 和 <exclude> 元素有条件地排除对象。例如,你可以迁移 C:\ 驱动器中除任何 .mp3 文件之外的所有文件。重要的是,记住将冲突和优先级应用到这些元素上。

    • unconditionalExclude:你可以使用 <unconditionalExclude> 元素对数据进行全局排除。该元素的优先级高于 .xml 文件中的所有包含和排除规则。因此,无论 .xml 文件中是否有任何其他 <include> 规则,该元素仍会对对象进行排除。例如,你可以排除计算机上所有 .mp3 文件或 C:\UserData 下的所有文件。

  • 创建 Config.xml 文件:你可以创建并修改 Config.xml 文件以从迁移中排除整个组件。例如,可以使用该文件为某个默认应用程序排除设置。此外,为排除迁移到运行 Windows 的计算机的操作系统设置,创建和修改 Config.xml 文件是唯一方法。使用此文件排除组件比修改迁移 .xml 文件更容易,因为你不必熟悉迁移规则和语法。

创建自定义 .xml 文件

我们建议你创建自定义 .xml 文件,而不是修改默认的迁移 .xml 文件。如果你使用自定义 .xml 文件,则可以将你的修改与默认 .xml 文件保持分离,这样就更容易跟踪你的修改。

<include> 和 <exclude>

迁移 .xml 文件(MigApp.xml、MigDocs 和 MigUser.xml)中包含 <component> 元素,该元素通常代表自包含的组件或应用程序(例如 Microsoft® Office Outlook® 和 Word)。为排除与这些组件关联的文件和注册表设置,请使用 <include> 和 <exclude> 元素。例如,你可以使用这些元素迁移模式为 X 的所有文件和设置,并排除模式为 Y 的文件和设置,其中 Y 比 X 更加具体。有关这些元素的语法,请参阅 USMT XML 参考

注意  

如果你指定了 <exclude> 规则,则应始终指定对应的 <include> 规则。否则,如果你不指定 <include> 规则,特定的文件和设置则不会包括进来。而会排除在迁移之外。因此,单独的 <exclude> 规则是不必要的。

 

  • 示例 1:如何迁移 C:\ 中除 .mp3 文件之外的所有文件

  • 示例 2:如何迁移 C:\Data 中除 C:\Data\tmp 文件夹之外的所有文件

  • 示例 3:如何排除文件夹中的文件但包含所有子文件夹

  • 示例 4:如何从特定文件夹中排除文件

  • 示例 5:如何排除任意位置的文件

示例 1:如何迁移 C:\ 中除 .mp3 文件之外的所有文件

下述 .xml 文件将迁移 C:\ 中除 .mp3 文件之外的所有文件。

<migration urlid="https://www.microsoft.com/migration/1.0/migxmlext/mp3files">
    <!-- This component migrates all files except those with .mp3 extension-->
    <component type="Documents" context="UserAndSystem">
        <displayName _locID="miguser.sharedvideo">MP3 Files</displayName>
        <role role="Data">
            <rules>
                <include filter='MigXmlHelper.IgnoreIrrelevantLinks()'>
                    <objectSet>
                        <pattern type="File">C:\* [*]</pattern>
                    </objectSet>
                </include>
                <exclude>
                    <objectSet>
                        <pattern type="File">C:\* [*.mp3]</pattern>
                    </objectSet>
                </exclude>
            </rules>
        </role>
    </component>
</migration>

示例 2:如何迁移 C:\Data 中除 C:\Data\tmp 文件夹之外的所有文件

下述 .xml 文件将迁移 C:\Data 中除 C:\Data\tmp 中的文件和子文件夹之外的所有文件和子文件夹。

<migration urlid="https://www.microsoft.com/migration/1.0/migxmlext/test">
    <component type="Documents" context="System">
        <displayName _locID="miguser.sharedvideo">Test component</displayName>
        <role role="Data">
            <rules>
         <include>
            <objectSet>
                 <pattern type="File">C:\Data\* [*]</pattern>
            </objectSet>
          </include>
         <exclude>
             <objectSet>
                   <pattern type="File"> C:\Data\temp\* [*]</pattern>
             </objectSet>
         </exclude>  
            </rules>
        </role>
    </component>
</migration>

示例 3:如何排除文件夹中的文件但包含所有子文件夹

下述 .xml 文件将迁移 C:\EngineeringDrafts 中的所有子文件夹,但排除 C:\EngineeringDrafts 中的所有文件。

<migration urlid="https://www.microsoft.com/migration/1.0/migxmlext/test">
<component type="Documents" context="System">
  <displayName>Component to migrate all Engineering Drafts Documents without subfolders</displayName>
  <role role="Data">
    <rules>
         <include>
            <objectSet>
                 <pattern type="File"> C:\EngineeringDrafts\* [*]</pattern>
            </objectSet>
          </include>
      <exclude>
        <objectSet>
          <pattern type="File"> C:\EngineeringDrafts\ [*]</pattern>
        </objectSet>
      </exclude>
    </rules>
  </role>
</component>
</migration>

示例 4:如何从特定文件夹中排除文件

下述 .xml 文件将迁移 C:\EngineeringDrafts 中除 C:\Data\tmp 中 Sample.doc 文件之外的所有文件和子文件夹。

<migration urlid="https://www.microsoft.com/migration/1.0/migxmlext/test">
<component type="Documents" context="System">
  <displayName>Component to migrate all Engineering Drafts Documents except Sample.doc</displayName>
  <role role="Data">
    <rules>
         <include>
            <objectSet>
                 <pattern type="File"> C:\EngineeringDrafts\* [*]</pattern>
            </objectSet>
          </include>
      <exclude>
        <objectSet>
          <pattern type="File"> C:\EngineeringDrafts\ [Sample.doc]</pattern>
        </objectSet>
      </exclude>
    </rules>
  </role>
</component>
</migration>

示例 5:如何排除任意位置的文件

要排除 C: 驱动器任何位置下的 Sample.doc 文件,请使用 <pattern> 元素。如果 C: 驱动器中存在多个同名文件,则将排除所有这些文件。

<pattern type="File"> C:\* [Sample.doc] </pattern>

要排除计算机任何驱动器下的 Sample.doc 文件,请使用 <script> 元素。如果存在多个同名文件,则将排除所有这些文件。

<script>MigXmlHelper.GenerateDrivePatterns("* [sample.doc]", "Fixed")</script>

USMT XML 参考

示例 1:如何排除所有 .mp3 文件

下述 .xml 文件从迁移中排除了所有 .mp3 文件:

<migration urlid="https://www.microsoft.com/migration/1.0/migxmlext/excludefiles">
  <component context="System" type="Documents">
        <displayName>Test</displayName>
        <role role="Data">
            <rules>
             <unconditionalExclude>
                        <objectSet>
    <script>MigXmlHelper.GenerateDrivePatterns ("* [*.mp3]", "Fixed")</script>
                        </objectSet> 
             </unconditionalExclude>
            </rules>
        </role>
    </component>
</migration>

示例 2:如何排除特定驱动器上的所有文件

下述 .xml 文件仅排除了位于 C: 驱动器上文件。

<migration urlid="https://www.microsoft.com/migration/1.0/migxmlext/allfiles">
    <component type="Documents" context="System">
        <displayName>Test</displayName>
        <role role="Data">
            <rules>
  <unconditionalExclude>
                    <objectSet>
      <pattern type="File">c:\*[*]</pattern>
                    </objectSet>
  </unconditionalExclude>
            </rules>
        </role>
    </component>
</migration>

示例 3:如何排除注册表项

下述 .xml 文件会无条件地排除 HKey_Current_User 注册表项及其所有子项。

<?xml version="1.0" encoding="UTF-8"?>
<migration urlid="https://www.microsoft.com/migration/1.0/migxmlext/miguser">
   <component type="Documents" context="User">
      <displayName>Test</displayName>
      <role role="Data">
         <rules>
            <include>
               <objectSet>
                  <pattern type="Registry">HKCU\testReg[*]</pattern>
               </objectSet>
            </include>
            <unconditionalExclude>
               <objectSet>
                  <pattern type="Registry">HKCU\*[*]</pattern>
               </objectSet>
            </unconditionalExclude>
         </rules>
      </role>
   </component>
</migration>

示例 4:如何排除 C:\Windows 和 C:\Program Files

下述 .xml 文件会无条件地排除 C:\Windows 和 C:\Program Files 系统文件夹。请注意,将不会迁移所有 *.docx、*.xls 和 *.ppt 文件,因为 <unconditionalExclude> 元素的优先级高于 <include> 元素。

<?xml version="1.0" encoding="UTF-8"?>
<migration urlid="https://www.microsoft.com/migration/1.0/migxmlext/miguser">
   <component type="Documents" context="System">
      <displayName>Test</displayName>
      <role role="Data">
         <rules>
            <include>
               <objectSet>
    <script>MigXmlHelper.GenerateDrivePatterns ("* [*.doc]", "Fixed")</script>
    <script>MigXmlHelper.GenerateDrivePatterns ("* [*.xls]", "Fixed")</script>
    <script>MigXmlHelper.GenerateDrivePatterns ("* [*.ppt]", "Fixed")</script>
               </objectSet>
            </include>
            <unconditionalExclude>
               <objectSet>
                  <pattern type="File">C:\Program Files\* [*]</pattern>
<pattern type="File">C:\Windows\* [*]</pattern>
               </objectSet>
            </unconditionalExclude>
         </rules>
      </role>
   </component>
</migration>

创建 Config.xml 文件

如果要从迁移中排除组件,可以创建并修改 Config.xml 文件。使用此文件排除组件比修改迁移 .xml 文件更容易,因为你不必熟悉迁移规则和语法。Config.xml 是可选文件,你可以使用 /genconfig 命令行选项及 ScanState 工具创建它。例如,可以使用 Config.xml 文件排除默认应用程序的设置。此外,为排除迁移到运行 Windows 的计算机的操作系统设置,创建和修改该文件是唯一方法。

  • **排除默认应用程序的设置:**为 Config.xml 文件 <Applications> 部分下的应用程序指定 migrate="no"

  • 排除操作系统设置:为 <WindowsComponents> 部分下的设置指定 migrate="no"

  • **排除“我的文档”:**为 <Documents> 部分下的“我的文档”指定 migrate="no"。请注意,.xml 文件中的任何 <include> 规则仍然有效。例如,如果你的规则是包含“我的文档”中的所有 .docx 文件,则仅迁移 .docx 文件,而不会迁移其他文件。

有关详细信息,请参阅 Config.xml 文件

注意  

若要从 Config.xml 文件中排除某个组件,请将“迁移”值设置为“no”****。从 Config.xml 文件中删除 XML 标记并不会将该组件从你的迁移中排除。

 

相关主题

自定义 USMT XML 文件

USMT XML 参考

Config.xml 文件