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:
  • Initialisieren
  • Scannen
  • Sammeln
  • Speichern
  • Schätzung
  • Anwendung
detectedUser
  • Für das ScanState-Tool handelt es sich bei diesem Schlüssel um die Benutzer, die auf dem Quellcomputer erkannt wurden, der migriert werden kann.
  • Für das LoadState-Tool handelt es sich bei diesem Schlüssel um die Benutzer, die im Speicher erkannt wurden und migriert werden können.
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:
  • Der benutzerstatus, der migriert wird.
  • Dieser Computer, d. h. Dateien und Einstellungen, die keinem Benutzer zugeordnet sind.
detectedComponent Gibt eine komponente an, die von USMT erkannt wurde.
  • Für ScanState ist dieser Schlüssel eine Komponente oder Anwendung, die auf dem Quellcomputer installiert ist.
  • Für LoadState ist dieser Schlüssel eine Komponente oder Anwendung, die im Speicher 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:
  • UnableToCopy: In den Speicher kann nicht kopiert werden, da der Datenträger, auf dem sich der Speicher befindet, voll ist.
  • UnableToOpen: Die Datei kann für die Migration nicht geöffnet werden, da die Datei bei einer anderen Anwendung oder einem anderen Dienst im nicht freigegebenen Modus geöffnet ist.
  • UnableToCopyCatalog: Kopieren nicht möglich, weil der Speicher beschädigt ist.
  • UnableToAccessDevice: Zugriff auf das Gerät nicht möglich.
  • UnableToApply: Die Einstellung kann nicht auf den Zielcomputer angewendet werden.
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:
  • Ignorieren: Nicht schwerwiegender Fehler wurde ignoriert, und die Migration wurde fortgesetzt, da die Option /c in der Befehlszeile angegeben wurde.
  • Abbruch: Die Migration wurde beendet, da die Option /c nicht angegeben wurde.
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.exeverfü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>