排除檔案與設定
當您指定移轉 .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 參考。
備註 |
---|
如果指定 <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 檔案 以取得詳細資訊。
備註 |
---|
若要從 Config.xml 檔案排除某個元件,請將 migrate 值設定成 "no"。從 Config.xml 檔案中刪除元件的 XML 標記後,移轉時並不會排除該元件。 |