USMT-Protokolldateien
UsMT-Protokolle (User State Migration Tool) können verwendet werden, um die Migration zu überwachen und Fehler und fehlgeschlagene Migrationen zu beheben. In diesem Artikel werden die verfügbaren Befehlszeilenoptionen zum Aktivieren von USMT-Protokollen beschrieben. Außerdem werden neue XML-Elemente beschrieben, mit denen Folgendes konfiguriert werden kann:
- Welche Fehlertypen schwerwiegend sind und die Migration anhalten sollten.
- Welche Typen nicht schwerwiegend sind und übersprungen werden sollten, damit die Migration fortgesetzt werden kann.
Protokollbefehlszeilenoptionen
Die folgende Tabelle beschreibt jede Befehlszeilenoption, die sich auf Protokolle bezieht, und enthält den Protokollnamen und eine Beschreibung der Art von Informationen, die jedes Protokoll enthält.
Befehlszeilenoption | Dateiname | Beschreibung |
---|---|---|
/l"[Pfad]Dateiname |
ScanState.exe.log oder LoadState.log |
Gibt den Pfad und dateinamen des ScanState-Protokolls oder loadState-Protokolls an. |
/progress:[Path]FileName | Gibt den Pfad und dateinamen des Statusprotokolls an. | Enthält Informationen über die status der Migration nach Prozentsatz der Abgeschlossenkeit. |
/v:[VerbosityLevel] | Nicht zutreffend | Weitere Informationen finden Sie unter Überwachungsoptionen in der ScanState-Syntax. |
/listfiles:[Path]FileName | Gibt den Pfad und dateinamen des Listfiles-Protokolls an. | Stellt eine Liste der Dateien bereit, die migriert wurden. |
Legen Sie die Umgebungsvariable MIG_ENABLE_DIAG auf einen Pfad zu einer XML-Datei fest. | USMTDiag.xml |
Das Diagnoseprotokoll enthält detaillierte Informationen zur Systemumgebung, Informationen zur Benutzerumgebung und Informationen zu den zu sammelnden Migrationseinheiten (migunits) und deren Inhalten. |
Hinweis
Die Protokolldateien können nicht in StorePath gespeichert werden. Wenn die Protokolldateien in StorePath gespeichert sind, werden die Protokolldateien beim Ausführen von USMT überschrieben.
ScanState- und LoadState-Protokolle
ScanState - und LoadState-Protokolle sind Textdateien, die erstellt werden, wenn die ScanState - und LoadState-Tools ausgeführt werden. Diese Protokolle können zur Überwachung der Migration verwendet werden. Der Inhalt des Protokolls hängt von den verwendeten Befehlszeilenoptionen und der angegebenen Ausführlichkeitsebene ab. Weitere Informationen zu Ausführlichkeitsgraden finden Sie unter Überwachungsoptionen in der ScanState-Syntax.
Statusprotokoll
Mithilfe der Option kann ein /progress
Statusprotokoll erstellt werden. Externe Tools wie Microsoft System Center Operations Manager können das Statusprotokoll analysieren, um die Überwachungssysteme zu aktualisieren. Die ersten drei Felder in jeder Zeile sind wie folgt festgelegt:
Datum: Date, im Format dayshortNameOfTheMonthyear. Beispiel: 08 Jun 2023.
Ortszeit: Time im Format "hrs:minutes:seconds " (unter Verwendung einer 24-Stunden-Uhr). Beispiel: 13:49:13.
Migrationszeit: Dauer der Ausführung von USMT im Format "hrs:minutes:seconds". Beispiel: 00:00:20.
Die restlichen Felder sind Schlüssel-Wert-Paare, wie in der folgenden Tabelle angegeben.
Schlüssel | Wert |
---|---|
Programm |
ScanState.exe oder LoadState.exe . |
productVersion | Die vollständige Produktversionsnummer von USMT. |
computerName | Der Name des Quell- oder Zielcomputers, auf dem USMT ausgeführt wurde. |
CommandLine | Der vollständige Befehl, der zum Ausführen von USMT verwendet wird. |
PHASE | Meldet, dass eine neue Phase der Migration beginnt. Dieser Schlüssel kann einer der folgenden Werte sein:
|
detectedUser |
|
includedInMigration | Definiert, ob das Benutzerprofil/die Komponente für die Migration eingeschlossen wird. Gültige Werte sind Ja oder Nein. |
forUser | Gibt einen der folgenden Werte an:
|
detectedComponent | Gibt eine komponente an, die von USMT erkannt wurde.
|
totalSizeInMBToTransfer | Gesamtgröße der zu migrierenden Dateien und Einstellungen in Megabyte (MB). |
totalPercentageCompleted | Gesamtprozentsatz der Migration, die entweder von ScanState oder LoadState abgeschlossen wird. |
collectingUser | Gibt an, für welchen Benutzer ScanState Dateien und Einstellungen sammelt. |
totalMinutesRemaining | Zeitschätzung in Minuten für den Abschluss der Migration. |
Fehler | Typ des aufgetretenen nicht schwerwiegenden Fehlers. Dieser Schlüssel kann einer der folgenden Werte sein:
|
objectName | Der Name der Datei oder Einstellung, die den nicht schwerwiegenden Fehler verursacht hat. |
Aktion | Aktion, die von USMT für den nicht schwerwiegenden Fehler ausgeführt wird. Die Werte sind:
|
errorCode | Der errorCode- oder Rückgabewert. |
numberOfIgnoredErrors | Die Gesamtanzahl der nicht schwerwiegenden Fehler, die VON USMT ignoriert wurden. |
Nachricht* | Die Meldung, die dem errorCode entspricht. |
Auflisten des Dateiprotokolls
Das Listendateiprotokoll (Listfiles.txt
) enthält eine Liste der dateien, die migriert wurden. Diese Liste kann zur Behandlung von XML-Problemen verwendet oder als Datensatz der Dateien aufbewahrt werden, die im Migrationsspeicher gesammelt wurden. Das Protokoll "Listendateien" ist nur für ScanState.exe
verfügbar.
Diagnoseprotokoll
Das Diagnoseprotokoll kann abgerufen werden, indem die Umgebungsvariable MIG_ENABLE_DIAG auf einen Pfad zu einer XML-Datei festgelegt wird.
Das Diagnoseprotokoll enthält Folgendes:
Detaillierte Systemumgebungsinformationen.
Ausführliche Informationen zur Benutzerumgebung.
Informationen zu den zu sammelnden Migrationseinheiten (migunits) und deren Inhalt.
Verwenden des Diagnoseprotokolls
Das Diagnoseprotokoll ist im Wesentlichen ein Bericht aller Migrationseinheiten (migunits), die in der Migration enthalten sind. Eine migunit ist eine Sammlung von Daten. In den XML-Dateien identifiziert die Komponente die migunit, der die migunit zugeordnet ist. Der Migrationsspeicher besteht aus allen migunits in der Migration. Das Diagnoseprotokoll kann verwendet werden, um zu überprüfen, welche migunits in die Migration einbezogen wurden, und kann für die Problembehandlung beim Erstellen von XML-Migrationsdateien verwendet werden.
In den folgenden Beispielen werden gängige Szenarien beschrieben, in denen das Diagnoseprotokoll verwendet werden kann.
Warum wird diese Datei nicht migriert, wenn ich eine "Include"-Regel für sie erstellt habe?
Angenommen, wir verfügen über die folgende Verzeichnisstruktur und möchten, dass das Datenverzeichnis zusammen mit der Neuen Text-Document.txt-Datei im neuen Ordner in die Migration einbezogen werden soll. Das Verzeichnis von C:\data
enthält Folgendes:
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
Das Verzeichnis von C:\data\New Folder
enthält Folgendes:
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
Um diese Dateien zu migrieren, wird der folgende Migrations-XML-Code erstellt:
<?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>
Beim Testen der Migration wird jedoch festgestellt, dass die Neue Text-Document.txt-Datei nicht in der Migration enthalten war. Um diesen Fehler zu beheben, kann die Migration mit der Umgebungsvariablen wiederholt MIG_ENABLE_DIAG so festgelegt werden, dass das Diagnoseprotokoll generiert wird. Beim Durchsuchen des Diagnoseprotokolls für die Komponente DATA1 wird der folgende XML-Abschnitt angezeigt:
<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>
Die Analyse dieses XML-Abschnitts zeigt die migunit an, die beim Verarbeiten der Migrationsregel erstellt wurde. Im <Abschnitt Ausführen> werden die tatsächlichen Dateien, die für das Sammeln geplant wurden, und das Ergebnis des Sammelvorgangs beschrieben. Die Datei "Neuer Text Document.txt " wird in diesem Abschnitt nicht angezeigt, wodurch bestätigt wird, dass die Migrationsregel nicht ordnungsgemäß erstellt wurde.
Eine Analyse des Referenzartikels zur XML-Elementbibliothek zeigt, dass das <Mustertag> wie folgt geändert werden muss:
<pattern type="File">c:\data\* [*]</pattern>
Wenn die Migration erneut mit dem geänderten Tag ausgeführt wird, zeigt das Diagnoseprotokoll die folgenden Informationen an:
<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>
Dieses Diagnoseprotokoll bestätigt, dass der geänderte <Musterwert> die Migration der Datei ermöglicht.
Warum wird diese Datei migriert, wenn ich eine Ausschlussregel erstellt habe?
In diesem Szenario ist die folgende Verzeichnisstruktur vorhanden, und alle Dateien im Verzeichnis Data sollten mit Ausnahme von Textdateien migriert werden. Der C:\Data
Ordner enthält:
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
Enthält C:\Data\New Folder\
Folgendes:
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
Der folgende Migrations-XML-Code wird erstellt:
<?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>
Beim Testen der Migration werden jedoch alle Textdateien bemerkt, dass sie weiterhin in der Migration enthalten sind. Um dieses Problem zu beheben, kann die Migration mit der Umgebungsvariablen ausgeführt werden , MIG_ENABLE_DIAG festgelegt werden, damit das Diagnoseprotokoll generiert wird. Beim Durchsuchen des Diagnoseprotokolls für die Komponente DATA1 wird der folgende XML-Abschnitt angezeigt:
<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>
Wenn das Diagnoseprotokoll überprüft wird, wird bestätigt, dass die Dateien noch migriert werden, und dass es sich um ein Problem mit der erstellten XML-Migrationsregel handelt. Ein Update für das XML-Migrationsskript wird wie folgt erstellt:
<?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>
Das überarbeitete XML-Migrationsskript schließt die Dateien von der Migration aus, wie im Diagnoseprotokoll bestätigt:
<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>