USMT ログ ファイル

ユーザー状態移行ツール (USMT) ログを使用して、移行を監視したり、エラーや失敗した移行のトラブルシューティングを行うことができます。 この記事では、USMT ログを有効にするために使用できるコマンド ライン オプションについて説明します。 また、構成に使用できる新しい XML 要素についても説明します。

  • どの種類のエラーが致命的で、移行を停止する必要があります。
  • どの型が致命的でないため、移行を続行できるようにスキップする必要があります。

ログ コマンド ライン オプション

次の表では、ログに関連する各コマンド ライン オプションについて説明し、ログ名と、各ログに含まれる情報の種類の説明を示します。

コマンド ライン オプション ファイル名 説明
/l"[Path]FileName ScanState.exe.log 又は LoadState.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 ログ

ScanState ログと LoadState ログは、 ScanState ツールと LoadState ツールの実行時に作成されるテキスト ファイルです。 これらのログは、移行の監視に役立ちます。 ログの内容は、使用されるコマンド ライン オプションと、指定された詳細レベルによって異なります。 詳細レベルの詳細については、「ScanState 構文の監視オプション」を参照してください。

進行状況ログ

進行状況ログは、 /progress オプションを使用して作成できます。 Microsoft System Center Operations Manager などの外部ツールは、進行状況ログを解析して監視システムを更新できます。 各行の最初の 3 つのフィールドは、次のように固定されます。

  • 日付: 日付 ( 日shortNameOfTheMonth年の形式)。 例: 2023 年 6 月 8 日。

  • 地域時刻:時間 (hrs:minutes:seconds) の形式 (24 時間時計を使用)。 例: 13:49:13。

  • 移行時間: USMT が実行された時間 ( hrs:minutes:seconds) の形式。 たとえば、00:00:20 です。

残りのフィールドは、次の表に示すようにキーと値のペアです。

キー 値
プログラム ScanState.exe または LoadState.exe。
productVersion USMT の完全な製品バージョン番号。
computerName USMT が実行されたソースコンピューターまたは移行先コンピューターの名前。
commandLine USMT の実行に使用される完全なコマンド。
位相 移行の新しいフェーズが開始されていることを報告します。 このキーには、次のいずれかの値を指定できます。
  • 初期化
  • スキャニング
  • 採集
  • 節約
  • 推定
  • 適用
detectedUser
  • ScanState ツールの場合、このキーは移行可能なソース コンピューターで USMT が検出されたユーザーです。
  • LoadState ツールの場合、このキーは、移行可能なストアで USMT が検出されたユーザーです。
includedInMigration ユーザー プロファイル/コンポーネントを移行に含めるかどうかを定義します。 有効な値は [はい] または [いいえ] です。
forUser 次のいずれかの値を指定します。
  • 移行中のユーザー状態。
  • このコンピューター。ユーザーに関連付けられていないファイルと設定を意味します。
detectedComponent USMT によって検出されたコンポーネントを指定します。
  • ScanState の場合、このキーはソース コンピューターにインストールされているコンポーネントまたはアプリケーションです。
  • LoadState の場合、このキーはストアで検出されたコンポーネントまたはアプリケーションです。
totalSizeInMBToTransfer 移行するファイルと設定の合計サイズ (MB)。
totalPercentageCompleted ScanState または LoadState によって完了された移行の合計割合。
collectingUser ファイルと設定を収集するユーザー ScanState を指定します。
totalMinutesRemaining 移行が完了するまでの時間見積もり (分単位)。
error 発生した致命的でないエラーの種類。 このキーには、次のいずれかの値を指定できます。
  • UnableToCopy: ストアが配置されているディスクがいっぱいであるため、ストアにコピーできません。
  • UnableToOpen: 別のアプリケーションまたはサービスでファイルが非共有モードで開かれているため、移行のためにファイルを開くことができません。
  • UnableToCopyCatalog: ストアが破損しているため、コピーできません。
  • UnableToAccessDevice: デバイスにアクセスできません。
  • UnableToApply: 対象のコンピューターに設定を適用できません。
objectName 致命的ではないエラーの原因となったファイルまたは設定の名前。
アクション 致命的でないエラーに対して USMT によって実行されたアクション。 値は次のとおりです。
  • 無視: 致命的でないエラーは無視され、 /c オプションがコマンド ラインで指定されたため、移行が続行されました。
  • 中止: /c オプションが指定されていないため、移行を停止しました。
errorCode errorCode または戻り値。
numberOfIgnoredErrors USMT が無視した致命的でないエラーの合計数。
メッセージ* errorCode に対応するメッセージ。

ファイル ログの一覧表示

List files log (Listfiles.txt) には、移行されたファイルの一覧が表示されます。 この一覧は、XML の問題のトラブルシューティングに使用することも、移行ストアに収集されたファイルのレコードとして保持することもできます。 List Files ログは、 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 が明らかになります。 <Perform> セクションでは、収集のためにスケジュールされた実際のファイルと、収集操作の結果について詳しくは説明します。 新しいテキスト Document.txt ファイルは、移行規則が正しく作成されていないことを確認するこのセクションには表示されません。

XML 要素ライブラリリファレンス記事の分析では、<pattern> タグを次のように変更する必要があることを示しています。

<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>

この診断ログは、変更された <pattern> 値によってファイルの移行が有効になっていることを確認します。

除外ルールを作成したときにこのファイルが移行されるのはなぜですか?

このシナリオでは、次のディレクトリ構造が存在し、テキスト ファイルを除き、 Data ディレクトリ内のすべてのファイルを移行する必要があります。 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>