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 |
|
includedInMigration | ユーザー プロファイル/コンポーネントを移行に含めるかどうかを定義します。 有効な値は [はい] または [いいえ] です。 |
forUser | 次のいずれかの値を指定します。
|
detectedComponent | USMT によって検出されたコンポーネントを指定します。
|
totalSizeInMBToTransfer | 移行するファイルと設定の合計サイズ (MB)。 |
totalPercentageCompleted | ScanState または LoadState によって完了された移行の合計割合。 |
collectingUser | ファイルと設定を収集するユーザー ScanState を指定します。 |
totalMinutesRemaining | 移行が完了するまでの時間見積もり (分単位)。 |
error | 発生した致命的でないエラーの種類。 このキーには、次のいずれかの値を指定できます。
|
objectName | 致命的ではないエラーの原因となったファイルまたは設定の名前。 |
アクション | 致命的でないエラーに対して USMT によって実行されたアクション。 値は次のとおりです。
|
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>