共用方式為


USMT 記錄檔

用戶狀態移轉工具 (USMT) 記錄可用來監視移轉,以及針對錯誤和失敗的移轉進行疑難解答。 本文說明啟用 USMT 記錄的可用命令行選項。 它也會描述可用來設定的新 XML 元素:

  • 哪些類型的錯誤是嚴重錯誤,且應該停止移轉。
  • 哪些類型不是嚴重型別,且應該略過,以便繼續移轉。

記錄命令列選項

下表描述與記錄相關的每個命令行選項,並提供記錄檔名稱,以及每個記錄包含何種資訊類型的描述。

命令行選項 檔名 描述
/l[Path]FileName ScanState.exe.logLoadState.log 指定 ScanState 記錄檔或 LoadState 記錄檔的路徑和檔名。
/progress[Path]FileName 指定進度記錄檔的路徑和檔名。 依完成百分比提供移轉狀態的相關信息。
/v[VerbosityLevel] 不適用 請參閱 ScanState 語法中的監視選項
/listfiles[Path]FileName 指定 Listfiles 記錄檔的路徑和檔名。 提供已移轉的檔案清單。
將環境變數 MIG_ENABLE_DIAG 設定為 XML 檔案的路徑。 USMTDiag.xml 診斷記錄包含詳細的系統環境資訊、用戶環境資訊,以及所收集之 migunits (移轉單位及其內容) 的詳細資訊。

注意

記錄檔無法儲存在 StorePath 中。 如果記錄檔儲存在 StorePath 中,則會在 USMT 執行時覆寫記錄檔。

ScanState 和 LoadState 記錄

ScanStateLoadState 記錄是 當 ScanStateLoadState 工具執行時所建立的文字檔。 這些記錄可用來協助監視移轉。 記錄的內容取決於使用的命令行選項和指定的詳細資訊層級。 如需詳細資訊層級的詳細資訊,請參閱 ScanState 語法中的監視選項

進度記錄

您可以使用 /progress 選項來建立進度記錄。 外部工具,例如 Microsoft System Center Operations Manager,可以剖析進度記錄以更新監視系統。 每一行的前三個字段會固定,如下所示:

  • 日期: Date,格式為 dayshortNameOfTheMonthyear。 例如:08 Jun 2023。

  • 當地時間: 時間,格式為 hrsminutesseconds (使用 24 小時制) 。 例如:13:49:13。

  • 移轉時間: USMT 執行時間的持續時間,格式為 hrs:minutes:seconds。 例如:00:00:20。

其餘欄位是索引鍵/值組,如下表所示。

程式 ScanState.exeLoadState.exe
productVersion USMT 的完整產品版本號碼。
computerName 執行 USMT 的來源或目的地電腦名稱。
commandLine 用來執行 USMT 的完整命令。
階段 報告移轉的新階段正在開始。 此索引鍵可以是下列其中一個值:
  • 初始化
  • 掃描
  • 收集
  • 儲蓄
  • 估計
  • 應用
detectedUser
  • 針對 ScanState 工具,此金鑰是在可以移轉的來源電腦上偵測到 USMT 的使用者。
  • 對於 LoadState 工具,此金鑰是在可移轉的存放區中偵測到 USMT 的使用者。
includedInMigration 定義是否包含使用者配置檔/元件以進行移轉。 有效值為 [是][否]
forUser 指定下列其中一個值:
  • 正在移轉的用戶狀態。
  • 此計算機,表示未與使用者相關聯的檔案和設定。
detectedComponent 指定 USMT 偵測到的元件。
  • 針對 ScanState,此金鑰是安裝在來源電腦上的元件或應用程式。
  • 對於 LoadState,此金鑰是在存放區中偵測到的元件或應用程式。
totalSizeInMBToTransfer 要移轉的檔案和設定大小總計 (MB) 。
totalPercentageCompleted ScanStateLoadState 完成的移轉總百分比。
collectingUser 指定要收集檔案和設定的使用者 ScanState
totalMinutesRemaining 移轉完成的時間估計,以分鐘為單位。
錯誤 發生的非嚴重錯誤類型。 此索引鍵可以是下列其中一個值:
  • UnableToCopy:無法複製到存放區,因為存放區所在的磁碟已滿。
  • UnableToOpen:無法開啟檔案以進行移轉,因為另一個應用程式或服務以非共用模式開啟檔案。
  • UnableToCopyCatalog:無法複製,因為存放區已損毀。
  • UnableToAccessDevice:無法存取裝置。
  • UnableToApply:無法將設定套用至目的地計算機。
objectName 造成非嚴重錯誤的檔名或設定。
行動 USMT 針對非嚴重錯誤所採取的動作。 這些值為:
  • 忽略:忽略非嚴重錯誤,並繼續移轉,因為已在命令行上指定 /c 選項。
  • 中止:已停止移轉,因為未指定 /c 選項。
errorCode errorCode 或傳回值。
numberOfIgnoredErrors USMT 忽略的非嚴重錯誤總數。
消息* 對應至 errorCode 的訊息。

列出檔案記錄

清單檔案記錄 (Listfiles.txt) 提供已移轉的檔案清單。 此清單可用來針對 XML 問題進行疑難解答,或保留為已收集到移轉存放區的檔案記錄。 清單檔案記錄僅適用於 ScanState.exe

診斷記錄

藉由將環境變數 MIG_ENABLE_DIAG 設定為 XML 檔案的路徑,即可取得診斷記錄。

診斷記錄包含:

  • 詳細的系統環境資訊。

  • 詳細的用戶環境資訊。

  • 收集移轉單位 (migunits) 及其內容的相關信息。

使用診斷記錄

診斷記錄基本上是移轉中 (migunits) 包含的所有移轉單位報告。 migunit 是數據的集合。 在 XML 檔案中,元件會識別與 Migunit 相關聯的 migunit。 移轉存放區是由移轉中的所有 Migunit 所組成。 診斷記錄可用來驗證移轉中包含哪些 Migunit,並且可用於撰寫移轉 XML 檔案時的疑難解答。

下列範例說明可以使用診斷記錄檔的常見案例。

為什麼當我為檔案撰寫「包含」規則時,這個檔案不會移轉?

假設我們有下列目錄結構,而且我們希望數據目錄包含在移轉中,以及 [新增資料夾] 中的 [新增文字] Document.txt 檔案。 C:\data目錄包含:

12/21/2023  01:08 PM    <DIR>          .
12/21/2023  01:08 PM    <DIR>          ..
12/21/2023  01:08 PM    <DIR>          New Folder
12/21/2023  01:19 PM                13 test (1).txt
12/21/2023  01:19 PM                13 test.txt
               2 File(s)             26 bytes

C:\data\New Folder目錄包含:

12/21/2023  01:08 PM    <DIR>          .
12/21/2023  01:08 PM    <DIR>          ..
12/21/2023  01:08 PM                 0 New Text Document.txt
               1 File(s)              0 bytes

若要移轉這些檔案,會撰寫下列移轉 XML:

<?xml version="1.0" encoding="UTF-8"?>
<migration urlid="http://www.microsoft.com/migration/1.0/TestSuite_BUGFIX">

<component context="System"  type="Application">
  <displayName>DATA1</displayName>
  <role role="Data">
    <rules>
      <include>
        <objectSet>
          <pattern type="File">c:\data\ [*]</pattern>
        </objectSet>
      </include>

    </rules>
  </role>
</component>
</migration>

不過,測試移轉時,會注意到 [新增文字 Document.txt 檔案未包含在移轉中。 若要針對此失敗進行疑難解答,可以使用環境變數 MIG_ENABLE_DIAG 設定來重複移轉,以便產生診斷記錄。 搜尋元件 DATA1 的診斷記錄會顯示下列 XML 區段:

<MigUnitList>
  <MigUnit Name="\<System\>\DATA1 (CMXEAgent)" Context="System" ConfidenceLevel="100" Group="Applications" Role="UserData" Agent="CMXEAgent" Selected="true" Supported="true">
    <Patterns Type="Include">
      <Pattern Type="File" Path="C:\data [*]"/>
    </Patterns>
  </MigUnit>
</MigUnitList>
<Perform Name="Gather" User="System">
  <MigUnit Name="\<System\>\DATA1 (CMXEAgent)">
    <Operation Name="Store" Type="File" Path="C:\data" SimObj="false" Success="true"/>
    <Operation Name="Store" Type="File" Path="C:\data [test (1).txt]" SimObj="false" Success="true"/>
    <Operation Name="Store" Type="File" Path="C:\data [test.txt]" SimObj="false" Success="true"/>
  </MigUnit>
</Perform>

此 XML 區段的分析會顯示處理移轉規則時所建立的 migunit。 [ <執行]> 區段詳細說明已排程收集的實際檔案,以及收集作業的結果。 [ 新增文字 Document.txt 檔案不會出現在本節中,這會確認未正確撰寫移轉規則。

XML 元素庫參考文章的分析會顯示需要修改模式>標籤,<如下所示:

<pattern type="File">c:\data\* [*]</pattern>

使用修改過的標籤再次執行移轉時,診斷記錄會顯示下列資訊:

<MigUnitList>
  <MigUnit Name="\<System\>\DATA1 (CMXEAgent)" Context="System" ConfidenceLevel="100" Group="Applications" Role="UserData" Agent="CMXEAgent" Selected="true" Supported="true">
    <Patterns Type="Include">
      <Pattern Type="File" Path="C:\data\* [*]"/>
    </Patterns>
  </MigUnit>
</MigUnitList>
<Perform Name="Gather" User="System">
  <MigUnit Name="\<System\>\DATA1 (CMXEAgent)">
    <Operation Name="Store" Type="File" Path="C:\data" SimObj="false" Success="true"/>
    <Operation Name="Store" Type="File" Path="C:\data [test (1).txt]" SimObj="false" Success="true"/>
    <Operation Name="Store" Type="File" Path="C:\data [test.txt]" SimObj="false" Success="true"/>
    <Operation Name="Store" Type="File" Path="C:\data\New Folder" SimObj="false" Success="true"/>
    <Operation Name="Store" Type="File" Path="C:\data\New Folder [New Text Document.txt]" SimObj="false" Success="true"/>
  </MigUnit>
</Perform>

此診斷記錄會確認修改 <過的模式> 值可啟用檔案的移轉。

為什麼當我撰寫排除規則時會移轉此檔案?

在此案例中,存在下列目錄結構,而且 數據 目錄中的所有檔案都應該移轉,但文本檔除外。 檔案 C:\Data 夾包含:

Directory of C:\Data

12/21/2023  01:08 PM    <DIR>          .
12/21/2023  01:08 PM    <DIR>          ..
12/21/2023  01:08 PM    <DIR>          New Folder
12/21/2023  01:19 PM                13 test (1).txt
12/21/2023  01:19 PM                13 test.txt
               2 File(s)             26 bytes

包含 C:\Data\New Folder\

12/21/2023  01:08 PM    <DIR>          .
12/21/2023  01:08 PM    <DIR>          ..
12/21/2023  01:08 PM                 0 New Text Document.txt
               1 File(s)              0 bytes

撰寫下列移轉 XML:

<?xml version="1.0" encoding="UTF-8"?>
<migration urlid="http://www.microsoft.com/migration/1.0/TestSuite_BUGFIX">

<component context="System"  type="Application">
  <displayName>DATA1</displayName>
  <role role="Data">
    <rules>
      <include>
        <objectSet>
          <pattern type="File">c:\data\* [*]</pattern>
        </objectSet>
      </include>
    </rules>
    <rules>
      <exclude>
        <objectSet>
          <pattern type="File">c:\* [*.txt]</pattern>
        </objectSet>
      </exclude>

    </rules>
  </role>
</component>

不過,測試移轉時,所有文本文件都會注意到它們仍包含在移轉中。 若要針對此問題進行疑難解答,可以使用 MIG_ENABLE_DIAG 設定的環境變數來執行移轉,以便產生診斷記錄。 搜尋元件 DATA1 的診斷記錄會顯示下列 XML 區段:

<MigUnitList>
  <MigUnit Name="\<System\>\DATA1 (CMXEAgent)" Context="System" ConfidenceLevel="100" Group="Applications" Role="UserData" Agent="CMXEAgent" Selected="true" Supported="true">
    <Patterns Type="Include">
      <Pattern Type="File" Path="C:\data\* [*]"/>
    </Patterns>
    <Patterns Type="Exclude">
      <Pattern Type="File" Path="C:\* [*.txt]"/>
    </Patterns>
  </MigUnit>
</MigUnitList>
<Perform Name="Gather" User="System">
  <MigUnit Name="\<System\>\DATA1 (CMXEAgent)">
    <Operation Name="Store" Type="File" Path="C:\data" SimObj="false" Success="true"/>
    <Operation Name="Store" Type="File" Path="C:\data [test (1).txt]" SimObj="false" Success="true"/>
    <Operation Name="Store" Type="File" Path="C:\data [test.docx]" SimObj="false" Success="true"/>
    <Operation Name="Store" Type="File" Path="C:\data [test.txt]" SimObj="false" Success="true"/>
    <Operation Name="Store" Type="File" Path="C:\data\New Folder" SimObj="false" Success="true"/>
    <Operation Name="Store" Type="File" Path="C:\data\New Folder [New Text Document.txt]" SimObj="false" Success="true"/>
    <Operation Name="Store" Type="File" Path="C:\data\New Folder [test.docx]" SimObj="false" Success="true"/>
  </MigUnit>
</Perform>

檢閱診斷記錄時,仍會確認檔案是否正在移轉,且這是撰寫移轉 XML 規則的問題。 系統會撰寫移轉 XML 腳本的更新,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<migration urlid="http://www.microsoft.com/migration/1.0/TestSuite_BUGFIX">

<component context="System"  type="Application">
  <displayName>DATA1</displayName>
  <role role="Data">
    <rules>
      <include>
        <objectSet>
          <pattern type="File">c:\data\* [*]</pattern>
        </objectSet>
      </include>
    </rules>
    <rules>
      <exclude>
        <objectSet>
          <pattern type="File">c:\data\* [*.txt]</pattern>
        </objectSet>
      </exclude>

    </rules>
  </role>
</component>


</migration>

修改過的移轉 XML 文本會排除移轉檔案,如診斷記錄中所確認:

<MigUnitList>
  <MigUnit Name="\<System\>\DATA1 (CMXEAgent)" Context="System" ConfidenceLevel="100" Group="Applications" Role="UserData" Agent="CMXEAgent" Selected="true" Supported="true">
    <Patterns Type="Include">
      <Pattern Type="File" Path="C:\data\* [*]"/>
    </Patterns>
    <Patterns Type="Exclude">
      <Pattern Type="File" Path="C:\data\* [*.txt]"/>
    </Patterns>
  </MigUnit>
</MigUnitList>
<Perform Name="Gather" User="System">
  <MigUnit Name="\<System\>\DATA1 (CMXEAgent)">
    <Operation Name="Store" Type="File" Path="C:\data" SimObj="false" Success="true"/>
    <Operation Name="Store" Type="File" Path="C:\data [test.docx]" SimObj="false" Success="true"/>
    <Operation Name="Store" Type="File" Path="C:\data\New Folder" SimObj="false" Success="true"/>
    <Operation Name="Store" Type="File" Path="C:\data\New Folder [test.docx]" SimObj="false" Success="true"/>
  </MigUnit>
</Perform>