USMT 運作方式

USMT 包含兩個移轉設定和資料的工具:ScanState 和 LoadState。ScanState 會從來源電腦收集資訊,而 LoadState 會將該資訊套用至目的電腦。

  • ScanState 程序

  • LoadState 程序

    note備註
    如需 USMT 如何處理規則和 XML 檔案的相關資訊,請參閱衝突與優先順序

ScanState 程序

當您在來源電腦上執行 ScanState 工具時,此工具會經歷下列程序:

  1. 會剖析和驗證命令列參數、建立 ScanState.log 檔案,然後開始記錄。

  2. 會收集需要移轉的所有移轉元件的相關資訊。「移轉元件」是檔案、登錄機碼和值的邏輯群組。例如,用於存放 Adobe Acrobat 設定的這組檔案、登錄機碼和值會分組為單一移轉元件。

    元件有三種類型:

    • 可移轉作業系統設定的元件

    • 可移轉應用程式設定的元件

    • 可移轉使用者檔案的元件

    ScanState 工具會從在命令列上指定的 .xml 檔案,收集應用程式設定和使用者資料元件的相關資訊。

    在 Windows Vista®、Windows 7 和 Windows 8 中,資訊清單檔案會控制作業系統設定的移轉方式。您無法修改這些檔案。如果想要排除特定作業系統設定,您必須建立及修改 Config.xml 檔案。

  3. ScanState 會決定應該移轉哪些使用者設定檔。根據預設,會移轉來源電腦上的所有使用者設定檔。不過,您可以使用 [使用者選項] 來包含和排除使用者。系統設定檔 (這是執行 Windows® XP 的來源電腦中的 [所有使用者] 設定檔),或是執行 Windows Vista、Windows 7 和 Windows 8 的來源電腦中的 [公用] 設定檔一律會進行移轉,而且您無法從移轉中排除這些設定檔。

  4. 在「正在掃描」階段中,ScanState 會對已選取要進行移轉的每個使用者設定檔進行下列作業:

    1. 對於每個元件,ScanState 會檢查元件的類型。如果目前的使用者設定檔是系統設定檔,而且元件類型是 "System" 或 "UserAndSystem",則會針對此使用者選取此元件。否則會忽略此元件。此外,如果目前的使用者設定檔不是系統設定檔,而元件類型是 "User" 或 "UserAndSystem",則會針對此使用者選取此元件。否則會忽略此元件。

      note備註
      從此以後,ScanState 不會分辨用於移轉作業系統設定、移轉應用程式設定以及移轉使用者檔案的元件。ScanState 會以相同的方式處理所有的元件。

    2. 在上一個步驟中選取的每個元件都會進一步處理。所有設定檔特定的變數 (如 CSIDL_PERSONAL) 都會在目前設定檔的內容中進行評估。例如,如果正在處理的設定檔屬於 "User1",則 CSIDL_PERSONAL 會展開至 C:\Users\User1\Documents (假設使用者設定檔儲存在 C:\Users 目錄中)。

    3. 對於每個選取的元件,ScanState 會評估 <detects> 區段。如果 <detects> 區段中的條件評估為 false,則不會進一步處理此元件。否則,會繼續處理此元件。

    4. 對於每個選取的元件,ScanState 會評估 <rules> 區段。對於每個 <rules> 區段而言,如果目前的使用者設定檔是系統設定檔,而 <rules> 區段的內容是 "System" 或 "UserAndSystem",則會進一步處理此規則。否則會忽略此規則。此外,如果目前的使用者設定檔不是系統設定檔,而 <rules> 區段的內容是 "User" 或 "UserAndSystem",則會進一步處理此規則。否則會忽略此規則。

    5. ScanState 會藉由處理此 <rules> 區段下的各種子區段,建立需要移轉的移轉單元清單。如果在 <include> 子區段中提及每個單元,只要相同 <rules> 區段的 <exclude> 子區段中沒有更特定的規則,就會收集每個單元。如需 .xml 檔案的優先順序相關資訊,請參閱衝突與優先順序

      此外,不會移轉 <UnconditionalExclude> 區段中的任何移轉單元 (例如檔案、登錄機碼或登錄值組)。

      note備註
      ScanState 會忽略某些子區段,例如 <destinationCleanup> 和 <locationModify>。這些區段只會在目的電腦上進行評估。

  5. 在「正在收集」階段中,ScanState 會藉由合併針對每個已選取使用者設定檔所建立的清單,建立移轉單元的主要清單。

  6. 在「正在儲存」階段中,ScanState 會將所收集的移轉單元寫入存放區位置。

    note備註
    ScanState 不會以任何方式修改來源電腦。

LoadState 程序

LoadState 程序非常類似於 ScanState 程序。ScanState 工具會從來源電腦收集移轉單元 (例如,檔案、登錄機碼或登錄值),然後將這些單元儲存到存放區。同樣地,LoadState 工具會從存放區收集移轉單元,然後將這些單元套用到目的電腦。

  1. ScanState 會剖析和驗證命令列參數、建立 ScanState.log 檔案,然後開始記錄。

  2. LoadState 則會收集需要移轉的移轉元件的相關資訊。

    LoadState 會從 LoadState 命令所指定的移轉 .xml 檔案中,取得應用程式設定元件和使用者資料元件的資訊。

    在 Windows Vista、Windows 7 和 Windows 8 中,資訊清單檔案會控制作業系統設定的移轉方式。您無法修改這些檔案。如果想要排除特定作業系統設定,您必須建立及修改 Config.xml 檔案。

  3. LoadState 會決定應該移轉哪些使用者設定檔。根據預設,會移轉來源電腦上的所有使用者設定檔。不過,您可以使用 [使用者選項] 來包含和排除使用者。系統設定檔 (這是執行 Windows XP 的來源電腦中的 [所有使用者] 設定檔),或是 Windows Vista、Windows 7 和 Windows 8 的來源電腦中的 [公用] 設定檔一律會進行移轉,而且您無法從移轉中排除這些設定檔。

    • 如果您移轉的是本機使用者帳戶,而這些帳戶並未存在於目的電腦上,則必須使用 /lac 命令列選項。如果未指定 /lac 選項,則不會移轉不在目的電腦上的本機使用者帳戶。

    • 如果在指定 LoadState 命令時包含了 /md/mu 選項,則會處理這兩個選項,以重新命名目的電腦上的使用者設定檔。

    • 對於從存放區中選取的每個使用者設定檔,LoadState 會在目的電腦上建立對應的使用者設定檔。建立網域使用者設定檔時,目的電腦並不需要連線至網域。如果 USMT 無法判定網域,則會嘗試將設定套件到本機帳戶。如需詳細資訊,請參閱識別使用者

  4. 在「正在掃描」階段中,LoadState 會對每個使用者設定檔進行下列作業:

    1. 對於每個元件,LoadState 會檢查元件的類型。如果目前的使用者設定檔是系統設定檔,而且元件類型是 "System" 或 "UserAndSystem",則會針對此使用者選取此元件。否則會忽略此元件。此外,如果目前的使用者設定檔不是系統設定檔,而元件類型是 "User" 或 "UserAndSystem",則會針對此使用者選取此元件。否則會忽略此元件。

      note備註
      從此以後,LoadState 不會分辨用於移轉作業系統設定、移轉應用程式設定以及移轉使用者檔案的元件。LoadState 會以相同的方式評估所有的元件。

    2. 已選取的每個元件都會進一步處理。所有設定檔特定的變數 (如 CSIDL_PERSONAL) 都會在目前設定檔的內容中進行評估。例如,如果正在處理的設定檔屬於 "User1",則 CSIDL_PERSONAL 會展開至 C:\Users\User1\Documents (假設使用者設定檔儲存在 C:\Users 目錄中)。

      note備註
      LoadState 會忽略在元件中指定的 <detects> 區段。此時,所有指定的元件都會視為針對移轉進行偵測和選取。

    3. 對於每個選取的元件,LoadState 會評估 <rules> 區段。對於每個 <rules> 區段而言,如果目前的使用者設定檔是系統設定檔,而 <rules> 區段的內容是 "System" 或 "UserAndSystem",則會進一步處理此規則。否則會忽略此規則。此外,如果目前的使用者設定檔不是系統設定檔,而 <rules> 區段的內容是 "User" 或 "UserAndSystem",則會進一步處理此規則。否則會忽略此規則。

    4. LoadState 會藉由處理 <rules> 區段下的各種子區段,建立移轉單元的主要清單。只要相同 <rules> 區段的 <exclude> 子區段中沒有更特定的規則,就會移轉 <include> 子區段中的每個移轉單元。如需優先順序的相關資訊,請參閱衝突與優先順序

    5. LoadState 會評估目的電腦特定的子區段,如 <destinationCleanup> 和 <locationModify> 子區段。

    6. 如果目的電腦正在執行 Windows Vista 或 Windows 7,則 LoadState 會使用 Windows 7 的對應元件資訊清單來處理 ScanState 使用舊版資訊清單檔案所收集的移轉單元。舊版資訊清單檔案不適用於 LoadState。

      重要

      如果您希望 LoadState 使用 .xml 檔案,請務必使用 LoadState 命令予以指定。否則,即使在執行 ScanState 命令時提供相同的 .xml 檔案,還是會忽略這些 .xml 檔案中的目的特定規則 (如 <locationModify>)。

  5. 在「套用」階段中,LoadState 會將所收集的移轉單元寫入目的電腦上的各種位置。如果發生衝突,而且沒有物件的 <merge> 規則,則登錄的預設行為是讓來源覆寫目的。檔案的預設行為是讓來源以遞增方式重新命名,例如,OriginalFileName(1).OriginalExtension。有些設定 (如字型、底色圖案和螢幕保護裝置設定) 要等到使用者下次登入時才會生效。因此,您應該在 LoadState 命令動作完成後登出。

另請參閱

其他資源

使用者狀態遷移工具 (USMT) 命令列語法