USMT 運作方式
USMT 包含兩個移轉設定和資料的工具:ScanState 和 LoadState。ScanState 會從來源電腦收集資訊,而 LoadState 會將該資訊套用至目的電腦。
ScanState 程序
LoadState 程序
備註 如需 USMT 如何處理規則和 XML 檔案的相關資訊,請參閱衝突與優先順序。
ScanState 程序
當您在來源電腦上執行 ScanState 工具時,此工具會經歷下列程序:
會剖析和驗證命令列參數、建立 ScanState.log 檔案,然後開始記錄。
會收集需要移轉的所有移轉元件的相關資訊。「移轉元件」是檔案、登錄機碼和值的邏輯群組。例如,用於存放 Adobe Acrobat 設定的這組檔案、登錄機碼和值會分組為單一移轉元件。
元件有三種類型:
可移轉作業系統設定的元件
可移轉應用程式設定的元件
可移轉使用者檔案的元件
ScanState 工具會從在命令列上指定的 .xml 檔案,收集應用程式設定和使用者資料元件的相關資訊。
在 Windows Vista®、Windows 7 和 Windows 8 中,資訊清單檔案會控制作業系統設定的移轉方式。您無法修改這些檔案。如果想要排除特定作業系統設定,您必須建立及修改 Config.xml 檔案。
ScanState 會決定應該移轉哪些使用者設定檔。根據預設,會移轉來源電腦上的所有使用者設定檔。不過,您可以使用 [使用者選項] 來包含和排除使用者。系統設定檔 (這是執行 Windows® XP 的來源電腦中的 [所有使用者] 設定檔),或是執行 Windows Vista、Windows 7 和 Windows 8 的來源電腦中的 [公用] 設定檔一律會進行移轉,而且您無法從移轉中排除這些設定檔。
在「正在掃描」階段中,ScanState 會對已選取要進行移轉的每個使用者設定檔進行下列作業:
對於每個元件,ScanState 會檢查元件的類型。如果目前的使用者設定檔是系統設定檔,而且元件類型是 "System" 或 "UserAndSystem",則會針對此使用者選取此元件。否則會忽略此元件。此外,如果目前的使用者設定檔不是系統設定檔,而元件類型是 "User" 或 "UserAndSystem",則會針對此使用者選取此元件。否則會忽略此元件。
備註 從此以後,ScanState 不會分辨用於移轉作業系統設定、移轉應用程式設定以及移轉使用者檔案的元件。ScanState 會以相同的方式處理所有的元件。 在上一個步驟中選取的每個元件都會進一步處理。所有設定檔特定的變數 (如 CSIDL_PERSONAL) 都會在目前設定檔的內容中進行評估。例如,如果正在處理的設定檔屬於 "User1",則 CSIDL_PERSONAL 會展開至 C:\Users\User1\Documents (假設使用者設定檔儲存在 C:\Users 目錄中)。
對於每個選取的元件,ScanState 會評估 <detects> 區段。如果 <detects> 區段中的條件評估為 false,則不會進一步處理此元件。否則,會繼續處理此元件。
對於每個選取的元件,ScanState 會評估 <rules> 區段。對於每個 <rules> 區段而言,如果目前的使用者設定檔是系統設定檔,而 <rules> 區段的內容是 "System" 或 "UserAndSystem",則會進一步處理此規則。否則會忽略此規則。此外,如果目前的使用者設定檔不是系統設定檔,而 <rules> 區段的內容是 "User" 或 "UserAndSystem",則會進一步處理此規則。否則會忽略此規則。
ScanState 會藉由處理此 <rules> 區段下的各種子區段,建立需要移轉的移轉單元清單。如果在 <include> 子區段中提及每個單元,只要相同 <rules> 區段的 <exclude> 子區段中沒有更特定的規則,就會收集每個單元。如需 .xml 檔案的優先順序相關資訊,請參閱衝突與優先順序。
此外,不會移轉 <UnconditionalExclude> 區段中的任何移轉單元 (例如檔案、登錄機碼或登錄值組)。
備註 ScanState 會忽略某些子區段,例如 <destinationCleanup> 和 <locationModify>。這些區段只會在目的電腦上進行評估。
在「正在收集」階段中,ScanState 會藉由合併針對每個已選取使用者設定檔所建立的清單,建立移轉單元的主要清單。
在「正在儲存」階段中,ScanState 會將所收集的移轉單元寫入存放區位置。
備註 ScanState 不會以任何方式修改來源電腦。
LoadState 程序
LoadState 程序非常類似於 ScanState 程序。ScanState 工具會從來源電腦收集移轉單元 (例如,檔案、登錄機碼或登錄值),然後將這些單元儲存到存放區。同樣地,LoadState 工具會從存放區收集移轉單元,然後將這些單元套用到目的電腦。
ScanState 會剖析和驗證命令列參數、建立 ScanState.log 檔案,然後開始記錄。
LoadState 則會收集需要移轉的移轉元件的相關資訊。
LoadState 會從 LoadState 命令所指定的移轉 .xml 檔案中,取得應用程式設定元件和使用者資料元件的資訊。
在 Windows Vista、Windows 7 和 Windows 8 中,資訊清單檔案會控制作業系統設定的移轉方式。您無法修改這些檔案。如果想要排除特定作業系統設定,您必須建立及修改 Config.xml 檔案。
LoadState 會決定應該移轉哪些使用者設定檔。根據預設,會移轉來源電腦上的所有使用者設定檔。不過,您可以使用 [使用者選項] 來包含和排除使用者。系統設定檔 (這是執行 Windows XP 的來源電腦中的 [所有使用者] 設定檔),或是 Windows Vista、Windows 7 和 Windows 8 的來源電腦中的 [公用] 設定檔一律會進行移轉,而且您無法從移轉中排除這些設定檔。
如果您移轉的是本機使用者帳戶,而這些帳戶並未存在於目的電腦上,則必須使用 /lac 命令列選項。如果未指定 /lac 選項,則不會移轉不在目的電腦上的本機使用者帳戶。
如果在指定 LoadState 命令時包含了 /md 和 /mu 選項,則會處理這兩個選項,以重新命名目的電腦上的使用者設定檔。
對於從存放區中選取的每個使用者設定檔,LoadState 會在目的電腦上建立對應的使用者設定檔。建立網域使用者設定檔時,目的電腦並不需要連線至網域。如果 USMT 無法判定網域,則會嘗試將設定套件到本機帳戶。如需詳細資訊,請參閱識別使用者。
在「正在掃描」階段中,LoadState 會對每個使用者設定檔進行下列作業:
對於每個元件,LoadState 會檢查元件的類型。如果目前的使用者設定檔是系統設定檔,而且元件類型是 "System" 或 "UserAndSystem",則會針對此使用者選取此元件。否則會忽略此元件。此外,如果目前的使用者設定檔不是系統設定檔,而元件類型是 "User" 或 "UserAndSystem",則會針對此使用者選取此元件。否則會忽略此元件。
備註 從此以後,LoadState 不會分辨用於移轉作業系統設定、移轉應用程式設定以及移轉使用者檔案的元件。LoadState 會以相同的方式評估所有的元件。 已選取的每個元件都會進一步處理。所有設定檔特定的變數 (如 CSIDL_PERSONAL) 都會在目前設定檔的內容中進行評估。例如,如果正在處理的設定檔屬於 "User1",則 CSIDL_PERSONAL 會展開至 C:\Users\User1\Documents (假設使用者設定檔儲存在 C:\Users 目錄中)。
備註 LoadState 會忽略在元件中指定的 <detects> 區段。此時,所有指定的元件都會視為針對移轉進行偵測和選取。 對於每個選取的元件,LoadState 會評估 <rules> 區段。對於每個 <rules> 區段而言,如果目前的使用者設定檔是系統設定檔,而 <rules> 區段的內容是 "System" 或 "UserAndSystem",則會進一步處理此規則。否則會忽略此規則。此外,如果目前的使用者設定檔不是系統設定檔,而 <rules> 區段的內容是 "User" 或 "UserAndSystem",則會進一步處理此規則。否則會忽略此規則。
LoadState 會藉由處理 <rules> 區段下的各種子區段,建立移轉單元的主要清單。只要相同 <rules> 區段的 <exclude> 子區段中沒有更特定的規則,就會移轉 <include> 子區段中的每個移轉單元。如需優先順序的相關資訊,請參閱衝突與優先順序。
LoadState 會評估目的電腦特定的子區段,如 <destinationCleanup> 和 <locationModify> 子區段。
如果目的電腦正在執行 Windows Vista 或 Windows 7,則 LoadState 會使用 Windows 7 的對應元件資訊清單來處理 ScanState 使用舊版資訊清單檔案所收集的移轉單元。舊版資訊清單檔案不適用於 LoadState。
重要
如果您希望 LoadState 使用 .xml 檔案,請務必使用 LoadState 命令予以指定。否則,即使在執行 ScanState 命令時提供相同的 .xml 檔案,還是會忽略這些 .xml 檔案中的目的特定規則 (如 <locationModify>)。
在「套用」階段中,LoadState 會將所收集的移轉單元寫入目的電腦上的各種位置。如果發生衝突,而且沒有物件的 <merge> 規則,則登錄的預設行為是讓來源覆寫目的。檔案的預設行為是讓來源以遞增方式重新命名,例如,OriginalFileName(1).OriginalExtension。有些設定 (如字型、底色圖案和螢幕保護裝置設定) 要等到使用者下次登入時才會生效。因此,您應該在 LoadState 命令動作完成後登出。