排除檔案與設定

當您指定移轉 .xml 檔案、MigApp.xml、Migdocs 以及 MigUser.xml 時,使用者狀態移轉工具 (USMT) 5.0 會移轉列出的設定和元件,如 USMT 移轉哪些項目?所述。您可以建立自訂 .xml 檔案,即可進一步指定移轉時要包含或排除的項目。此外,您可以建立 Config.xml 檔案,從移轉中排除整個元件。不過,您無法使用移轉 .xml 檔案或 Config.xml 檔案來排除使用者。要包含和排除使用者的唯一方法就是在 ScanState 工具中使用命令列的使用者選項。如需詳細資訊,請參閱 ScanState 語法

在本主題中:

  • 建立自訂 .xml 檔案。您可以使用以下元素來指定要排除的物件:

    • <include> 和 <exclude>:您可以使用 <include> 和 <exclude> 元素來排除具有條件的物件。例如,您可以移轉位於 C:\ 磁碟機中的所有檔案,但不含任何 .mp3 檔案。請務必記住,衝突與優先順序適用於這些元素。

    • <unconditionalExclude>:您可以使用 <unconditionalExclude> 元素,全面性排除資料。這個元素的優先順序高於 .xml 檔案中的所有其他包含和排除規則。因此,這個元素會排除物件,無論 .xml 檔案中的任何其他 <include> 規則為何。例如,您可以排除電腦上的所有 .mp3 檔案,或者排除 C:\UserData 中的所有檔案。

  • 建立 Config.xml 檔案:您可以建立和修改 Config.xml 檔案,從移轉中排除整個元件。例如,您可以使用這個檔案來排除其中一個預設應用程式的設定。此外,建立和修改 Config.xml 檔案,是排除要移轉至執行 Windows 電腦的作業系統設定的唯一方法。因為您不需要熟悉移轉規則和語法,所以使用這個檔案排除元件會比修改移轉 .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 參考

note備註
如果指定 <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:\EngineeringDrafts 中的 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>

<unconditionalExclude>

如果想要從移轉中排除某個檔案類型,而不管其他 <include> 或 <exclude> 規則為何,則可以使用 <unconditionalExclude> 元素。這個元素會全面性排除所有元件中的物件。例如,如果想要排除電腦中的所有 .mp3 檔案,請使用這個元素。或是,如果使用另一種方法備份 C:\UserData,則可以從移轉中排除整個資料夾。不過,使用這個元素時請小心,因為如果應用程式需要使用被您排除的檔案,應用程式可能無法在目的電腦上正常運作。如需這個元素的語法,請參閱 USMT XML 參考

  • 範例 1:如何排除所有 .mp3 檔案

  • 範例 2:如何排除特定磁碟機上的所有檔案

  • 範例 3:如何排除登錄機碼

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

範例 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。請注意,因為 <unconditionalExclude> 元素的優先順序高於 <include> 元素,所以不會移轉所有 *.docx、*.xls 以及 *.ppt 檔案。

<?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 是選擇性檔案,您可以在 ScanState 工具使用 /genconfig 命令列選項就可以建立。例如,您可以使用 Config.xml 檔案來排除其中一個預設應用程式的設定。此外,建立和修改這個檔案,是排除要移轉至執行 Windows 電腦的作業系統設定的唯一方法。

  • **排除預設應用程式的設定:**針對 Config.xml 檔案之 <Applications> 區段下的應用程式,指定 migrate="no"

  • **排除作業系統設定:**針對 <WindowsComponents> 區段下的設定,指定 migrate="no"

  • **排除 My Documents:**針對 <Documents> 區段下的 My Documents,指定 migrate="no"。請注意,.xml 檔案中的任何 <include> 規則仍然適用。例如,如果規則包含 My Documents 中的所有 .docx 檔案,則只會移轉 .docx 檔案,而不會移轉其餘檔案。

請參閱 Config.xml 檔案 以取得詳細資訊。

note備註
若要從 Config.xml 檔案排除某個元件,請將 migrate 值設定成 "no"。從 Config.xml 檔案中刪除元件的 XML 標記後,移轉時並不會排除該元件。

另請參閱

其他資源

自訂 USMT XML 檔案
USMT XML 參考
Config.xml 檔案