Registrierungssicherungs- und -wiederherstellungsvorgänge unter VSS

Der Windows-Registrierungsdienst unterstützt einen VSS-Writer, der als Registrierungswriter bezeichnet wird und es Anforderern ermöglicht, eine Systemregistrierung mithilfe von Daten zu sichern, die auf einem Schattenkopievolume gespeichert sind. Weitere Informationen zum Registrierungswriter finden Sie unter In-Box VSS Writers.

Der Registrierungswriter führt die Sicherungen und Wiederherstellungen der Registrierung an Ort und Stelle durch. Darüber hinaus meldet der Registrierungswriter nur Systemstrukturen. es meldet keine Benutzerstrukturen.

Windows Server 2003: Der Registrierungswriter verwendet eine Zwischen-Repositorydatei (auch als Spit-Datei bezeichnet) zum Speichern von Registrierungsdaten. Darüber hinaus meldet der Registrierungswriter Systemstrukturen und Benutzerstrukturen.

Die Writer-ID für den Registrierungswriter lautet AFBAB4A2-367D-4D15-A586-71DBB18F8485.

Windows XP: Es gibt keinen Registrierungswriter. Die Registrierungsdaten werden vom Bootable State Writer gemeldet, dessen Writer-ID F2436E37-09F5-41AF-9B2A-4CA2435DBFD5 lautet.

Hinweis

Microsoft bietet keinen technischen Support für Entwickler oder IT-Experten für die Implementierung von Online-Systemstatuswiederherstellungen auf Windows (alle Releases). Informationen zur Verwendung von von Microsoft bereitgestellten APIs und Verfahren zum Implementieren von Online-Systemstatuswiederherstellungen finden Sie in den Communityressourcen, die im MSDN Community Centerverfügbar sind.

Hinweis

Die folgenden Informationen gelten nur für Windows Server 2003 und Windows XP.

Registrierungssicherung mit VSS

Der Registrierungswriter exportiert und speichert aktive Registrierungsdateien an den Speicherorten, die durch den Schlüssel HKEY _ LOCAL _ MACHINE \ System \ CurrentControlSet \ Control \ hivelist definiert sind.

Die Namen der Werte unter diesem Registrierungseintrag geben die zu speichernde Registrierungsstruktur an, und die Daten des Werts stellen die Datei bereit, die die Datei (die Hive-Datei) enthält. Die Hive-Dateien werden im folgenden Format angegeben: \ Device \ HarddiskVolumeX \ path \ filename.

Beispielsweise wird unter HKEY _ LOCAL _ MACHINE \ System \ CurrentControlSet \ Control \ hivelist unter umständen REGISTRY MACHINE \ \ \ SOFTWARE = \ Device \ HarddiskVolume1 \ Windows \ System32 \ config SOFTWARE \ angezeigt.

Der Registrierungswriter stellt sicher, dass Hive-Dateien vor der Schattenkopie auf dem Datenträger gespeichert werden.

Beim Sichern der Registrierungsstrukturen ersetzt ein Anforderer \ Device \ HarddiskVolumeX durch die Geräteobjektzeichenfolge der Schattenkopie des Volumes.

Hinweis

Sie können den \ Pfad Device \ HarddiskVolumeX mithilfe der QueryDosDevice-Funktion in einen entsprechenden Win32-Pfad konvertieren. Weitere Informationen finden Sie unter Abrufen eines Dateinamens aus einem Dateihandle oder Anzeigen von Volumepfadnamen.

Registrierungswiederherstellung mit Win32-APIs ohne VSS

Für eine Onlinewiederherstellung (abgesicherter Modus oder vollständiges Betriebssystem) müssen die Unterschlüssel im Registrierungsschlüssel HKEY _ LOCAL _ MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ PendingFileRenameOperations beibehalten werden.

Die Funktionen MoveFileEx und MoveFileTransacted verwenden diesen Registrierungsschlüssel, um Informationen zu Dateien zu speichern, die mithilfe des _ MOVEFILE DELAY _ UNTIL _ REBOOT-Werts im dwFlags-Parameter umbenannt wurden.

Um den Inhalt des Registrierungsschlüssels PendingFileRenameOperations beizubehalten, sollte Ihre Sicherungsanwendung die RegLoadKey-Funktion aufrufen, um die Registrierungsdatei zu verbinden, die mit der aktiven Registrierung wiederhergestellt werden soll. Ihre Sicherungsanwendung kann dann die verschiedenen Registrierungsfunktionen verwenden, um die gewünschten Schlüssel und Werte in die geladene Struktur zu kopieren. Nach Abschluss des Kopiervorgangs sollten die Funktionen RegFlushKey und RegUnloadKey aufgerufen werden.

Bei einer Offlinewiederherstellung (Windows Wiederherstellungsumgebung oder Windows PE) muss der Registrierungsschlüssel PendingFileRenameOperations nicht berücksichtigt werden.

Registrierungswiederherstellung mit Win32-APIs ohne VSS in Windows Server 2003

Hinweis

Die folgenden Informationen gelten nur für Wiederherstellungsvorgänge im Zusammenhang mit der Notfallwiederherstellung (auch als Bare-Metal-Wiederherstellung bezeichnet), die in Windows Server 2003 ausgeführt werden.

Beim Wiederherstellen der Registrierung muss eine Sicherungsanwendung einige der Unterschlüssel aus der aktuellen Registrierung in die Wiederherstellungsregistrierung verschieben.

Hierzu kann eine Sicherungsanwendung RegLoadKey aufrufen, um die Registrierungsdatei zu verbinden, die mit der derzeit aktiven Registrierung wiederhergestellt werden soll. Anschließend können die verschiedenen Registrierungsfunktionen verwendet werden, um die gewünschten Schlüssel und Werte in die geladene Struktur zu kopieren. Nach Abschluss des Kopiervorgangs werden RegFlushKey und RegUnloadKey aufgerufen.

Es gibt einen Registrierungsschlüssel, der einer Wiederherstellungsanwendung (Anfordernde) die Registrierungsschlüssel unter HKEY _ LOCAL MACHINE _ \ SYSTEM angibt, die zum Zeitpunkt der Wiederherstellung nicht überschrieben werden sollen:

HKEY _ LOCAL _ MACHINE \ System \ CurrentControlSet \ Control \ BackupRestore \ KeysNotToRestore

Ein Teil des Wiederherstellungsprozesses für den Systemstatus umfasst das Wiederherstellen einer zuvor gesicherten Registrierung.

Sicherungsanwendungen müssen beim Wiederherstellen der HKEY _ LOCAL MACHINE _ \ SYSTEM-Struktur besondere Vorsicht walten lassen, da beim Installieren einer temporären Version des Windows Betriebssystems Schlüssel in der neu installierten Systemstruktur eingerichtet werden, deren Werte den Wiederherstellungsvorgang überstehen müssen.

Wenn das Ersatzsystem beispielsweise über eine netzwerkschnittstellenkarte verfügt, die sich vom ursprünglichen System unterscheidet, führt die Wiederherstellung der ursprünglichen Schlüssel für die vorherige Karte zu unvorhersehbaren Ergebnissen. Dies liegt daran, dass der Plug & Play Dienst ordnungsgemäße Dienst- und Treiberregistrierungseinträge erkannt und in der Registrierung platziert hat. Diese Werte müssen beibehalten werden, um nach der Systemwiederherstellung ordnungsgemäß gestartet zu werden.

In diesem Abschnitt wird beschrieben, wie Sicherungsanwendungen ermitteln können, welche Schlüssel und Dateien beim Ausführen einer Wiederherstellung der HKEY _ LOCAL MACHINE _ \ SYSTEM-Struktur beibehalten werden sollen. In einigen Fällen umfasst dies das programmgesteuerte Kopieren der Schlüssel aus der neu installierten Installationsstruktur in die wiederherzustellende Struktur. In anderen Fällen ist die Sicherstellung, dass die Registrierungsschlüssel eines Produkts nicht ersetzt werden, so einfach wie die Angabe solcher Schlüssel in der INF-Konfigurationsdatei des Produkts.

Schlüssel (und Schlüsseldaten), die beibehalten werden sollen, werden in der Struktur HKEY _ LOCAL MACHINE _ \ SYSTEM unter dem

HKEY _ LOCAL _ MACHINE \ SYSTEM \ CurrentControlSet \ Control \ BackupRestore \ KeysNotToRestore

key als Sätze von REG _ MULTI _ SZ-Zeichenfolgen (in diesem Dokument als Schlüsselzeichenfolgen bezeichnet).

Eine Sicherungsanwendung (Anfordernde) muss die Werte dieser Schlüssel in der aktiven Registrierung und der neu wiederhergestellten Registrierung überprüfen, da jede Anwendung oder jeder Dienst jederzeit Werte hinzufügen kann.

Wie Schlüsselzeichenfolgen von Sicherungsanwendungen interpretiert werden sollen, hängt von deren Terminalzeichen ab:

  1. Schlüsselzeichenfolgen, die mit einem umgekehrten Schrägstrich (' \ ' ) enden, werden als Unterschlüssel interpretiert. Wenn eine solche Teilzeichenfolge gefunden wird, muss die Sicherungsanwendung alle Daten und alle untergeordneten Schlüssel beibehalten.

    Im Folgenden wird beispielsweise angegeben, dass alle untergeordneten Schlüssel und Daten während eines Wiederherstellungsvorgangs beibehalten werden sollen:

    HKEY _ LOCAL MACHINE SYSTEM _ \ \ CurrentControlSet \ Services \ dmio boot \ info\

    Zu diesem Zweck müssen dieser Schlüssel und alle untergeordneten Schlüssel und Daten aus der vorhandenen Registrierung (d. h. dem durch die Installation von Windows erstellten) in die neu wiederhergestellte Registrierung kopiert werden. Dies wird als Schlüsselaustauschvorgang bezeichnet. Dieser Vorgang ersetzt den entsprechenden Schlüssel in der wiederhergestellten Registrierung.

  2. Schlüsselzeichenfolgen, deren Beendigungszeichen ein Sternchen (' * ') ist, geben an, dass alle Unterschlüssel zusammengeführt werden sollen. Beispielsweise die Schlüsselzeichenfolge:

    HKEY _ LOCAL _ MACHINE \ SYSTEM \ CurrentControlSet \ Services\*

    gibt an, dass der Dienstschlüssel in der vorhandenen Registrierung (z. B. die von der Installation von Windows erstellten) mit der wiederhergestellten Registrierung zusammengeführt werden muss. Dies wird als Schlüsselzusammenführungsvorgang bezeichnet. Wenn sowohl in der vorhandenen struktur als auch in der wiederhergestellten Struktur ein Unterschlüssel vorhanden ist, wird der Schlüssel im wiederhergestellten Verzeichnis mit den folgenden Ausnahmen beibehalten:

    • Wenn der Unterschlüssel in der vorhandenen Struktur einen Wert namens "start" enthält und der Unterschlüssel in der wiederhergestellten nicht.
    • Wenn der Unterschlüssel in der vorhandenen und der wiederhergestellten Struktur einen Wert namens "start" enthält und sein numerischer Wert in der vorhandenen Struktur kleiner ist.

    Der Wert "start" in der Registrierung gibt an, wann ein Dienst oder Treiber gestartet wird und einen numerischen Wert zwischen 0 und 4 aufweisen kann. Je niedriger der Wert, desto früher im Startprozess wird der Dienst gestartet.

    Wenn dieser Schlüssel sowohl im vorhandenen als auch im wiederhergestellten Verzeichnis vorhanden ist, müssen Sie den Wert des Startschlüssels in jeder Struktur untersuchen. Wenn der Wert in der vorhandenen Struktur niedriger als der Wert im wiederhergestellten Verzeichnis ist, muss der niedrigere Wert beibehalten werden.

    Auch hier wird dieser Schlüssel verwendet, um zu bestimmen, ob ein Dienst oder Treiber zur Startzeit, zur Systemzeit, manuell, automatisch oder deaktiviert werden soll. Der niedrigere Wert stellt eine frühere Startzeit dar. Die frühere Startzeit muss auf die neue Registrierung angewendet werden, um sicherzustellen, dass der Dienst oder die Treiber beim nächsten Start ordnungsgemäß gestartet werden.

  3. Schlüsselzeichenfolgen, deren Beendigungszeichen weder ein umgekehrter Schrägstrich noch ein Sternchen sind, werden als zu erhaltende Registrierungswerte interpretiert.

    Beispielsweise die Schlüsselzeichenfolge:

    HKEY _ LOCAL _ MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ PendingFileRenameOperations

    Der Mechanismus, mit dem Schlüssel programmgesteuert beibehalten werden können, umfasst die Win32-Registrierungs-API. Beispielsweise wird unten ein Algorithmus aufgelistet:

    1. Stellen Sie die wiederherstellende Systemstrukturdatei in einer Datei wieder her. In diesem Beispiel soll der Name System.reg sein.

    2. Verwenden Sie RegLoadKey, um System.reg unter einem temporären Namen in HKEY _ LOCAL _ MACHINE zu laden. Ein solcher Name kann z. B. sein.

      HKEY _ LOCAL _ MACHINE \ TMP _ SYSTEM

    3. Listen Sie die Werte im KeysNotToRestore-Unterschlüssel aus beiden Registrierungskopien auf, und erstellen Sie eine Obermenge der Listen. Kopieren Sie jeden solchen Schlüssel aus dem vorhandenen .

      HKEY _ LOCAL _ MACHINE \ SYSTEM

      key into the

      HKEY _ LOCAL _ MACHINE \ TMP _ SYSTEM

      Schlüssel gemäß der oben beschriebenen Semantik.

    4. Verwenden Sie nach Abschluss des Vorgangs die RegFlushKey & RegUnloadKey-Einstiegspunkte, um die zu speichern.

      HKEY _ LOCAL _ MACHINE \ TMP _ SYSTEM

      Schlüssel zurück zu System.reg.

    5. Verwenden Sie abschließend RegReplaceKey, um anzugeben, dass System.reg das ersetzen soll.

      HKEY _ LOCAL _ MACHINE \ SYSTEM

      Hive-Datei, SYSTEM.