Migrieren von App-Einstellungen

Sie können eine benutzerdefinierte XML-Datei erstellen, um Einstellungen spezifischer Branchen-Apps zu migrieren oder das standardmäßige Migrationsverhalten von User State Migration Tool (USMT) 5.0 zu ändern. Damit ScanState und LoadState diese benutzerdefinierte XML-Datei verwenden, müssen Sie sie in beiden Befehlszeilen angeben.

In diesem Thema wird beschrieben, wie Sie eine benutzerdefinierte XML-Migrationsdatei zum Migrieren der Einstellungen einer App erstellen, die nicht von der standardmäßigen Migrationsdatei „MigApp.xml“ migriert wird. Sie sollten die Einstellungen nach dem Installieren der App, aber vor dem erstmaligen Ausführen der App migrieren.

Dieses Thema enthält keine Informationen zum Migrieren von Apps, die Einstellungen in einem app-spezifischen Speicher speichern. Es werden nur Apps behandelt, die Informationen in Dateien oder der Registrierung speichern. Es enthält außerdem keine Informationen zum Migrieren der Daten, die Benutzer mit der App erstellen. Wenn eine App z. B. DOC-Dateien anhand einer bestimmten Vorlage erstellt, finden Sie hier keine Informationen dazu, wie die DOC-Dateien und Vorlagen selbst migriert werden.

Inhalt dieses Themas

  • Vorbemerkungen

  • Schritt 1: Überprüfen, ob die App auf dem Quell-PC installiert ist und es sich um die Version handelt, die auf dem Ziel-PC installiert werden soll

  • Schritt 2: Identifizieren der zu sammelnden Einstellungen und Ermitteln des Speicherorts der einzelnen Einstellungen auf dem PC

  • Schritt 3: Bestimmen der Methode zum Anwenden der gesammelten Einstellungen

  • Schritt 4: Erstellen der XML-Migrationskomponente für die App

  • Schritt 5: Testen der Migration der App-Einstellungen

Vorbemerkungen

Bestimmen Sie einen Test-PC, der das Betriebssystem der Quell-PCs und die App, deren Einstellungen Sie migrieren möchten, enthält. Wenn Sie z. B. eine Migration von Windows Vista® zu Windows® 8 planen, installieren Sie Windows Vista und anschließend die App auf dem Test-PC.

Schritt 1: Überprüfen, ob die App auf dem Quell-PC installiert ist und es sich um die Version handelt, die auf dem Ziel-PC installiert werden soll

Bevor USMT die Einstellungen migriert, müssen Sie überprüfen, ob die App auf dem Quell-PC installiert und die Version korrekt ist. Falls die App nicht auf dem Quell-PC installiert ist, wäre es ein unnötiger Zeitaufwand, mit USMT nach den Einstellungen der App zu suchen. Wichtiger ist aber, dass Einstellungen migriert werden können, die auf dem Ziel-PC zu Fehlern führen, wenn USMT Einstellungen für eine nicht installierte App sammelt. Überprüfen Sie auch, ob mehrere Versionen der App vorhanden sind. Es ist möglich, dass die neue Version die Einstellungen an einem anderen Speicherort speichert, was auf dem Ziel-PC zu unerwarteten Ergebnissen führen kann.

Es gibt verschiedene Möglichkeiten, um festzustellen, ob eine App installiert ist. Wir empfehlen, in der Registrierung zu überprüfen, ob ein App-Deinstallationsschlüssel vorhanden ist, und dann auf dem PC nach der ausführbaren Datei der App zu suchen. Es ist wichtig, beides zu überprüfen, da manchmal für unterschiedliche Versionen einer App der gleiche Deinstallationsschlüssel verwendet wird. Auch wenn der Schlüssel vorhanden ist, kann es daher sein, dass er nicht der gewünschten App-Version entspricht.

Durchsuchen der Registrierung nach einem App-Deinstallationsschlüssel

Bei der Installation vieler Apps (insbesondere bei denen, die mit der Microsoft® Windows® Installer-Technologie installiert werden) wird ein App-Deinstallationsschlüssel unter HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall erstellt. Bei der Installation von Adobe Acrobat Reader 7 wird beispielsweise der Schlüssel HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall \{AC76BA86-7AD7-1033-7B44-A70000000000} erstellt. Enthält ein PC diesen Schlüssel, bedeutet dies, dass Adobe Acrobat Reader 7 auf dem PC installiert ist. Sie können mit der DoesObjectExist-Hilfsfunktion überprüfen, ob ein Registrierungsschlüssel vorhanden ist.

Normalerweise lässt sich dieser Schlüssel finden, indem Sie unter HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall nach dem Namen der App, dem Namen der ausführbaren Datei der App oder dem Namen des App-Herstellers suchen. Sie können den Registrierungs-Editor (Regedit.exe unter %SystemRoot%) zum Durchsuchen der Registrierung verwenden.

Durchsuchen des Dateisystems nach der ausführbaren Datei der App

Um die ausführbare Datei zu ermitteln, von der die App installiert wurde, sollten Sie auch die Binärdateien der App überprüfen. Dazu müssen Sie zunächst feststellen, wo die App installiert ist und wie der Name der ausführbaren Datei lautet. Die meisten Apps speichern den Installationsspeicherort der App-Binärdateien in der Registrierung. Suchen Sie in der Registrierung nach dem Namen der App, dem Namen der ausführbaren Datei der App oder dem Namen des App-Herstellers, bis Sie den Registrierungswert mit dem Installationspfad gefunden haben. Nachdem Sie den Pfad der ausführbaren Datei der App ermittelt haben, können Sie mit der DoesFileVersionMatch-Hilfsfunktion die korrekte Version der ausführbaren Datei überprüfen. Ein Beispiel dazu finden Sie im Windows Live(TM) Messenger-Abschnitt der Datei „MigApp.xml“.

Schritt 2: Identifizieren der zu sammelnden Einstellungen und Ermitteln des Speicherorts der einzelnen Einstellungen auf dem PC

Als Nächstes sollten Sie die Benutzeroberfläche durchgehen, um eine Liste aller verfügbaren Einstellungen zu erstellen. Sie können die Liste einschränken, falls Einstellungen vorhanden sind, die Sie nicht migrieren möchten. Um festzustellen, wo die einzelnen Einstellungen gespeichert sind, müssen Sie jede Einstellung ändern und die Aktivität in der Registrierung und im Dateisystem überwachen. Die beim Installieren der App erstellten Binärdateien und Registrierungseinstellungen müssen nicht migriert werden. Dies ist nicht notwendig, weil Sie die App auf dem Ziel-PC neu installieren müssen. Sie müssen nur die anpassbaren Einstellungen migrieren.

Ermitteln des Speicherorts der einzelnen Einstellungen

  1. Laden Sie ein Datei- und Registrierungsüberwachungstool (z. B. die Tools Regmon und Filemon) von der Windows Sysinternals-Website herunter.

  2. Beenden Sie so viele Apps wie möglich, um die Registrierungs- und Dateisystemaktivitäten auf dem PC einzuschränken.

  3. Filtern Sie die Ausgabe der Tools, sodass nur von der App vorgenommene Änderungen angezeigt werden.

    Hinweis

    Die meisten Apps speichern ihre Einstellungen im Benutzerprofil. Die im Dateisystem gespeicherten Einstellungen befinden sich somit im Verzeichnis %UserProfile% und die in der Registrierung gespeicherten Einstellungen in der Struktur HKEY_CURRENT_USER. Für diese Apps können Sie die Ausgabe der Datei- und Registrierungsüberwachungstools filtern, um nur die Aktivitäten an diesen Pfaden anzuzeigen. So lässt sich die Menge an Ausgabedaten, die überprüft werden müssen, deutlich reduzieren.

  4. Starten Sie die Überwachungstools, ändern Sie eine Einstellung, und suchen Sie nach Schreibvorgängen der Registrierung und des Dateisystems, die beim Ändern der Einstellung stattgefunden haben. Stellen Sie sicher, dass die vorgenommenen Änderungen tatsächlich angewendet werden. Wenn Sie z. B. eine Einstellung in Microsoft Word ändern, indem Sie ein Kontrollkästchen im Dialogfeld Optionen aktivieren, wird die Änderung in der Regel erst wirksam, wenn Sie das Dialogfeld schließen und auf OK klicken.

  5. Notieren Sie die Änderungen im Dateisystem und in der Registrierung, nachdem die Einstellung geändert wurde. Für jede Einstellung können mehrere Datei- oder Registrierungswerte vorhanden sein. Ermitteln Sie den Mindestsatz von Datei- und Registrierungsänderungen, die zum Ändern der Einstellung notwendig sind. Dies sind die Dateien und Registrierungsschlüssel, die zum Migrieren der Einstellung migriert werden müssen.

    Hinweis

    Das Ändern einer App-Einstellung führt immer zu Schreibvorgängen in Registrierungsschlüsseln. Filtern Sie nach Möglichkeit die Ausgabe des Datei- und Registrierungsüberwachungstools, um nur Schreibvorgänge in Dateien und Registrierungsschlüsseln/-werten anzuzeigen.

Schritt 3: Bestimmen der Methode zum Anwenden der gesammelten Einstellungen

Wenn die App-Version auf dem Quell-PC der Version auf dem Ziel-PC entspricht, müssen Sie die gesammelten Dateien und Registrierungsschlüssel nicht ändern. USMT migriert die Dateien und Registrierungsschlüssel standardmäßig vom Quellspeicherort zum entsprechenden Speicherort auf dem Ziel-PC. Wenn eine Datei z. B. im Ordner „C:\Dokumente und Einstellungen\User1\Eigene Dateien“ gesammelt wurde und sich das Profilverzeichnis auf dem Ziel-PC unter „D:\Benutzer\User1“ befindet, migriert USMT die Datei automatisch zu „D:\Benutzer\User1\Eigene Dateien“. In den folgenden drei Fällen müssen Sie den Speicherort einiger Einstellungen möglicherweise aber ändern:

Fall 1: Die App-Version auf dem Ziel-PC ist neuer als die Version auf dem Quell-PC.

In diesem Fall kann die neuere App-Version die Einstellungen vom Quell-PC möglicherweise ohne Änderung lesen. Die von einer älteren App-Version gesammelten Daten sind manchmal mit der neueren App-Version kompatibel. In den folgenden Fällen müssen Sie den Speicherort der Einstellung möglicherweise aber ändern:

  • Die neuere App-Version kann Einstellungen von einer älteren Version importieren. Diese Zuordnung findet normalerweise statt, wenn ein Benutzer die neuere Version nach dem Migrieren der Einstellungen zum ersten Mal ausführt. Bei einigen Apps erfolgt die Zuordnung automatisch nach dem Migrieren von Einstellungen. Bei anderen Apps findet sie dagegen nur statt, wenn ein Upgrade der älteren App-Version durchgeführt wurde. Wenn die App aktualisiert wird, wird ein Satz von Dateien und/oder Registrierungsschlüsseln installiert, der angibt, dass die ältere Version der App zuvor installiert war. Führen Sie eine Neuinstallation der neueren Version durch (was bei den meisten Migrationen der Fall ist), enthält der PC diesen Satz von Dateien und Registrierungsschlüsseln nicht, und die Zuordnung findet nicht statt. Damit die neuere App-Version den Importvorgang initiiert, muss Ihr Migrationsskript diese Dateien und/oder Registrierungsschlüssel ggf. auf dem Ziel-PC erstellen.

    Um die Dateien und/oder Registrierungsschlüssel zu ermitteln, die zum Auslösen des Imports erstellt werden müssen, sollten Sie die ältere App-Version auf die neuere Version aktualisieren und wie unter Ermitteln des Speicherorts der einzelnen Einstellungen beschrieben die Änderungen im Dateisystem und in der Registrierung überwachen. Nachdem Sie die auf dem PC benötigten Dateien ermittelt haben, können Sie sie dem Ziel-PC mithilfe des <addObjects>-Elements hinzufügen.

  • Die neuere App-Version kann keine Einstellungen vom Quell-PC lesen und die Einstellungen nicht in das neue Format importieren. In diesem Fall müssen Sie für jede Einstellung eine Zuordnung zwischen dem alten und dem neuen Speicherort erstellen. Stellen Sie dazu wie unter Ermitteln des Speicherorts der einzelnen Einstellungen beschrieben fest, wo die neuere Version die einzelnen Einstellungen speichert. Nachdem Sie die Zuordnung erstellt haben, wenden Sie die Einstellungen mithilfe des <locationModify>-Elements und der RelativeMove- und ExactMove-Hilfsfunktionen auf den neuen Speicherort auf dem Ziel-PC an.

Falls 2: Der Ziel-PC enthält bereits Einstellungen für die App.

Wir empfehlen, die Einstellungen nach dem Installieren der App, aber vor dem erstmaligen Ausführen der App zu migrieren. Auf diese Weise können Sie sicherstellen, dass keine Einstellungen auf dem Ziel-PC vorhanden sind, wenn Sie die Einstellungen migrieren. Falls Sie die App vor der Migration installieren müssen, sollten Sie alle vorhandenen Einstellungen mithilfe des <destinationCleanup>-Elements löschen. Sollten Sie die Einstellungen auf dem Ziel-PC aus irgendeinem Grund beibehalten möchten, können Sie das <merge>-Element und die DestinationPriority-Hilfsfunktion verwenden.

Fall 3: Die App überschreibt bei ihrer Installation Einstellungen.

Wir empfehlen, die Einstellungen nach dem Installieren der App, aber vor dem erstmaligen Ausführen der App zu migrieren. Auf diese Weise können Sie sicherstellen, dass keine Einstellungen auf dem Ziel-PC vorhanden sind, wenn Sie die Einstellungen migrieren. Außerdem überschreiben einige Apps die auf dem PC vorhandenen Einstellungen, wenn sie installiert werden. In diesem Fall werden Ihre angepassten Einstellungen überschrieben, falls Sie die Daten vor der Installation der App migrieren. Dieses Verhalten ist bei Apps üblich, die Einstellungen außerhalb des Benutzerprofils speichern (in der Regel sind dies Einstellungen, die für alle Benutzer gelten). Diese universellen Einstellungen werden manchmal beim Installieren einer App überschrieben und durch Standardwerte ersetzt. Um dies zu vermeiden, müssen Sie solche Apps installieren, bevor Sie die Dateien und Einstellungen zum Ziel-PC migrieren. Bei Verwendung von USMT werden Daten, die bereits am selben Speicherort auf dem Ziel-PC vorhanden sind, standardmäßig durch die Daten vom Quell-PC überschrieben.

Schritt 4: Erstellen der XML-Migrationskomponente für die App

Nachdem Sie die Schritte 1 bis 3 ausgeführt haben, müssen Sie eine benutzerdefinierte XML-Migrationsdatei erstellen, die die App basierend auf den zusammengetragenen Informationen migriert. Die Datei „MigApp.xml“ enthält Beispiele für viele der hier erläuterten Konzepte und kann daher als Vorlage verwendet werden. Eine weitere XML-Beispieldatei finden Sie auch unter Beispiele für benutzerdefinierte XML-Dateien.

Hinweis

Wir empfehlen, eine separate XML-Datei zu erstellen, anstatt Ihr Skript der Datei MigApp.xml hinzuzufügen. Die Datei MigApp.xml ist sehr groß und daher schwer zu lesen und zu bearbeiten. Außerdem wird bei einer Neuinstallation von USMT die Datei MigApp.xml durch die Standardversion der Datei überschrieben, sodass Ihre angepasste Version in diesem Fall verloren gehen würde.

Wichtig

Einige Apps speichern im Benutzerprofil Informationen, die nicht migriert werden sollten (z. B. App-Installationspfade, den PC-Namen usw.). Diese Dateien und Registrierungsschlüssel müssen von der Migration ausgeschlossen werden.

Ihr Skript muss die folgenden Schritte ausführen:

  1. Das Skript muss überprüfen, ob die App installiert ist und es sich dabei um die korrekte Version handelt, indem es:

    • Unter HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall mithilfe der DoesObjectExist-Hilfsfunktion nach dem Deinstallationsschlüssel sucht.

    • Mit der DoesFileVersionMatch-Hilfsfunktion die korrekte Version der ausführbaren Datei überprüft.

  2. Ist die korrekte App-Version installiert, muss das Skript sicherstellen, dass jede Einstellung zum entsprechenden Speicherort auf dem Ziel-PC migriert wird.

    • Wenn die App-Versionen auf den Quell- und Ziel-PCs identisch sind, muss das Skript mithilfe der <include>- und <exclude>-Elemente jede Einstellung migrieren.

    • Wenn die App-Version auf dem Ziel-PC neuer ist als die auf dem Quell-PC und die App die Einstellungen nicht importieren kann, muss das Skript entweder1) mit dem <addObjects>-Element die Dateien zum Auslösen des Imports hinzufügen oder 2) mit dem <locationModify>-Element und den RelativeMove- und ExactMove-Hilfsfunktionen eine Zuordnung erstellen, durch die die alten Einstellungen auf den korrekten Speicherort auf dem Ziel-PC angewendet werden.

    • Wenn Sie die App vor dem Migrieren der Einstellungen installieren müssen, muss das Skript mithilfe des <destinationCleanup>-Elements bereits vorhandene Einstellungen auf dem Ziel-PC löschen.

Informationen zu den XML-Elementen und -Hilfsfunktionen finden Sie unter XML-Elementbibliothek.

Schritt 5: Testen der Migration der App-Einstellungen

Installieren Sie auf einem Test-PC das Betriebssystem, das auf den Ziel-PCs installiert werden soll. Wenn Sie z. B. eine Migration von Windows® 7 zu Windows 8 planen, installieren Sie Windows 8 und die App. Führen Sie anschließend LoadState auf dem Test-PC aus, und überprüfen Sie, ob alle Einstellungen migriert wurden. Nehmen Sie ggf. Korrekturen vor, und wiederholen Sie den Vorgang, bis alle Einstellungen korrekt migriert wurden.

Um das Sammeln und Migrieren der Daten zu beschleunigen, können Sie die Benutzer einzeln migrieren und mit Ausnahme der getesteten App alle anderen Komponenten von der Migration ausschließen. Um nur „User1“ in der Migration anzugeben, geben Sie Folgendes ein: /ue:*\* /ui:user1. Weitere Informationen finden Sie unter Ausschließen von Dateien und Einstellungen und unter „Benutzeroptionen“ im Thema ScanState-Syntax. Falls Sie ein Problem behandeln müssen, überprüfen Sie das Statusprotokoll und die ScanState- und LoadState-Protokolle. Die Protokolle enthalten Warnungen und Fehler, die auf Probleme mit der Migration hinweisen können.

Siehe auch

Weitere Ressourcen

USMT-XML-Referenz
Konflikte und Rangfolge
XML-Elementbibliothek
Protokolldateien