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註銷。