USMT 的運作方式
USMT 包含兩個移轉設定和數據的工具: ScanState 和 LoadState。 ScanState 會從來源計算機收集資訊, 而 LoadState 會將 該資訊套用至目的地電腦。
注意
如需 USMT 如何處理規則和 XML 檔案的詳細資訊,請參閱 衝突和優先順序。
ScanState 程式
當 ScanState 工具在來源電腦上執行時,它會經歷下列程式:
它會剖析並驗證命令行參數、建立
ScanState.log
檔案,然後開始記錄。它會收集所有需要移轉之移轉元件的相關信息。 移轉元件是檔案、登錄機碼和值的邏輯群組。 例如,儲存 Adobe Acrobat 設定的一組檔案、登錄機碼和值會分組為單一移轉元件。
元件有三種類型:
移轉作業系統設定的元件。
移轉應用程式設定的元件。
移轉使用者檔案的元件。
ScanState 工具會從命令行上指定的 .xml 檔案收集應用程式設定和用戶數據元件的相關信息。
在目前支援的 Windows 版本中,指令清單檔案會控制作業系統設定的移轉方式。 無法修改這些檔案。 若要排除某些作業系統設定,
Config.xml
必須建立和修改檔案。ScanState 會決定應該移轉哪些使用者配置檔。 根據預設,來源計算機上的所有使用者配置檔都會移轉。 不過,您可以使用 [ 使用者] 選項來包含和排除使用者。 執行目前支援之 Windows 版本之來源電腦中的系統設定檔和公用配置檔一律會移轉,而且無法從移轉中排除這些配置檔。
在 掃描 階段中, ScanState 會針對針對移轉選取的每個使用者配置檔執行下列動作:
針對每個元件, ScanState 會檢查元件的類型。 如果目前的使用者配置檔是系統配置檔,且元件類型是 System 或 UserAndSystem,則會為此使用者選取元件。 否則,會忽略元件。 或者,如果目前的使用者配置檔不是系統配置檔,且元件類型為 User 或 UserAndSystem,則會選取此使用者的元件。 否則,會忽略此元件。
注意
從此時開始, ScanState 不會區分移轉作業系統設定的元件、移轉應用程式設定的元件,以及移轉使用者檔案的元件。 ScanState 會 以相同方式處理所有元件。
在上一個步驟中選取的每個元件都會進一步處理。 任何配置檔特定的變數 (,例如 CSIDL_PERSONAL) 都會在目前配置檔的內容中評估。 例如,如果正在處理的配置檔屬於 User1,則 CSIDL_PERSONAL 會展開至
C:\Users\User1\Documents
,假設使用者配置檔儲存在目錄中C:\Users
。針對每個選取的元件, ScanState 會 <評估 detects 區> 段。 如果偵測>區段中<的條件評估為 false,則不會進一步處理元件。 否則,此元件的處理會繼續進行。
針對每個選取的元件, ScanState 會 <評估規則> 區段。 針對每個<規則>區段,如果目前的使用者配置檔是系統配置檔,而規則>區段的內容<是 System 或 UserAndSystem,則會進一步處理規則。 否則,會忽略此規則。 或者,如果目前的使用者配置檔不是系統配置檔,而且規則>區段的內容<是User或UserAndSystem,則會進一步處理規則。 否則,會忽略此規則。
ScanState 會建立需要移轉的移轉單位清單,方法是處理此 <規則> 區段下的各種子區段。 如果在 include 子區段中<>提及單位,則會收集每個單位,只要在相同<規則區段的排除子區段中沒有更具體的規則>即可。<> 如需 .xml 檔案中優先順序的詳細資訊,請參閱 衝突和優先順序。
此外,系統不會移轉任何移轉單位 (,例如檔案、登錄機碼或) 在無條件例外>區段中的一<組登錄值。
注意
ScanState 會忽略一些子區段,例如 <destinationCleanup> 和 <locationModify>。 這些區段只會在目的地計算機上評估。
在 收集 階段中, ScanState 會結合為每個選取的使用者配置檔建立的清單,以建立移轉單位的中央清單。
在 儲存 階段中, ScanState 會 將收集的移轉單位寫入存放區位置。
注意
ScanState 不會以任何方式修改來源計算機。
LoadState 進程
LoadState 進程類似於 ScanState 進程。 ScanState 工具會從來源計算機收集移轉單位,例如檔案、登錄機碼或登錄值,並將它們儲存至存放區。 同樣地, LoadState 工具會從存放區收集移轉單位,並將其套用至目的地計算機。
ScanState 會剖析並驗證命令行參數、建立
ScanState.log
檔案,然後開始記錄。LoadState 會收集需要移轉之移轉元件的相關信息。
LoadState 會從命令所
LoadState.exe
指定的移轉 .xml 檔案中,取得應用程式設定元件和用戶數據元件的資訊。在目前支援的 Windows 版本中,指令清單檔案會控制作業系統設定的移轉方式。 無法修改這些檔案。 若要排除某些作業系統設定,
Config.xml
必須建立和修改檔案。LoadState 會決定應該移轉哪些使用者配置檔。 根據預設,來源計算機上的所有使用者配置檔都會移轉。 不過,您可以使用 [ 使用者] 選項來包含和排除使用者。 執行目前支援之 Windows 版本之來源電腦中的系統設定檔和公用配置檔一律會移轉,而且無法從移轉中排除這些配置檔。
如果正在移轉本機用戶帳戶,而且目的地計算機上還沒有帳戶存在,
/lac
則必須使用命令行選項。 如果未指定選項/lac
,則不會移轉目的地計算機上尚未存在的任何本機用戶帳戶。使用 命令指定
LoadState.exe
時,/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 會 <評估規則> 區段。 針對每個<規則>區段,如果目前的使用者配置檔是系統配置檔,而規則>區段的內容<是 System 或 UserAndSystem,則會進一步處理規則。 否則,會忽略此規則。 或者,如果目前的使用者配置檔不是系統配置檔,而且規則>區段的內容<是User或UserAndSystem,則會進一步處理規則。 否則,會忽略此規則。
LoadState 會藉由處理規則>區段下<的各種子區段,建立移轉單位的中央清單。 只要在相同<規則>區段的<>排除>子區段中<沒有更明確的規則,就會移轉包含子區段中的每個移轉單位。 如需優先順序的詳細資訊,請參閱 衝突和優先順序。
LoadState 會評估目的地電腦特定的子區段,例如 destinationCleanup<> 和 <locationModify> 子區段。
如果目的地電腦執行目前支援的 Windows 版本,則 由 ScanState 使用下層指令清單檔案收集的 Migunit 會由 LoadState 使用舊版 Windows 版本的對應元件指令清單來處理。 LoadState 期間不會使用下層指令清單檔案。
重要
若要 讓 LoadState 使用 .xml 檔案,請務必使用
LoadState.exe
命令加以指定。 否則,即使命令執行時ScanState.exe
提供相同的 .xml 檔案,也會忽略這些.xml檔案中的任何目的地特定規則,例如<locationModify>。
在 [ 套用 ] 階段中, LoadState 會 將收集到目的地計算機上各種位置的移轉單位寫入。 如果發生衝突,而且對象沒有 <合併> 規則,則登錄的默認行為是讓來源覆寫目的地。 檔案的預設行為是以累加方式重新命名來源,例如 OriginalFileName (1) 。OriginalExtension。 某些設定,例如字型、桌布和屏幕保護設定,在使用者下次登入之前不會生效。 因此,在命令動作完成時
LoadState.exe
註銷。