Sicherungs- und Wiederherstellungsvorgänge für Registrierungen unter VSS
Der Windows-Registrierungsdienst unterstützt einen VSS Writer, der als Registrierungswriter bezeichnet wird. So kann der Anforderer eine Systemregistrierung mittels Daten sichern, die auf einem Datenträger in Form einer Schattenkopie gespeichert sind. Weitere Informationen zum Registrierungswriter finden Sie unter In-Box-VSS-Writer.
Der Registrierungswriter führt direkte Sicherungen und Wiederherstellungen der Registrierung durch. Der Registrierungswriter meldet lediglich Systemstrukturen, keine Benutzerstrukturen.
Windows Server 2003: Der Registrierungswriter verwendet eine Zwischenrepositorydatei (auch als Spitdatei bezeichnet), um Registrierungsdaten zu speichern. Der Registrierungswriter meldet sowohl Systemstrukturen als auch Benutzerstrukturen.
Die Writer-ID für den Registrierungswriter ist AFBAB4A2-367D-4D15-A586-71DBB18F8485.
Windows XP: Es gibt keinen Registrierungswriter. Die Registrierungsdaten werden vom Bootable State-Writer mit der Writer-ID F2436E37-09F5-41AF-9B2A-4CA2435DBFD5 gemeldet.
Hinweis
Microsoft bietet keinen technischen Support für Entwickler oder IT-Experten für die Implementierung von Online-Wiederherstellungen des Systemstatus unter Windows (alle Versionen).
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 vom Schlüssel HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\hivelist definiert werden.
Die Namen der Werte in diesem Registrierungseintrag identifizieren die Registrierungsstruktur, die gespeichert werden soll. Die Daten des Werts stellen die Datei bereit, die die Datei (die Strukturdatei) enthält. Die Strukturdateien werden im folgenden Format angegeben: \Device\HarddiskVolumeX\path\filename.
Beispielsweise sehen Sie unter HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\hivelist möglicherweise \REGISTRY\MACHINE\SOFTWARE = \Device\HarddiskVolume1\Windows\System32\config\SOFTWARE.
Der Registrierungswriter stellt sicher, dass die Strukturdateien vor der Schattenkopie auf dem Datenträger gespeichert werden.
Beim Sichern der Registrierungsstrukturen würde ein Anforderer \Device\HarddiskVolumeX durch die Geräteobjektzeichenfolge der Schattenkopie des Datenträgers ersetzen.
Hinweis
Sie können den Pfad \Device\HarddiskVolumeX mittels der Funktion QueryDosDevice in den entsprechenden Win32-Pfad konvertieren. Weitere Informationen finden Sie unter Abrufen eines Dateinamens aus einem Dateihandle oder Anzeigen von Datenträger-Pfadnamen.
Registrierungswiederherstellung mit anderen APIs als VSS-Win32-APIs
Hinweis
Die Registrierungswiederherstellung wird unter Windows Server 2016 und höher nicht unterstützt.
Um eine Onlinewiederherstellung durchzuführen (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 mittels des Werts MOVEFILE_DELAY_UNTIL_REBOOT im Parameter dwFlags Informationen zu Dateien zu speichern, die umbenannt wurden.
Um die Inhalte des Registrierungsschlüssels PendingFileRenameOperations beizubehalten, sollte Ihre Sicherungsanwendung die Funktion RegLoadKey aufrufen, um die Registrierungsdatei, die wiederhergestellt werden soll, mit der aktiven Registrierung zu verbinden. Ihre Sicherungsanwendung kann anschließend 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.
Für eine Offlinewiederherstellung (Windows Recovery Environment oder Windows PE) muss der Registrierungsschlüssel PendingFileRenameOperations nicht berücksichtigt werden.
Registrierungswiederherstellung mit anderen Win32-APIs als VSS-Win32-APIs 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 Registrierung verschieben, die wiederhergestellt werden soll.
Hierzu kann eine Sicherungsanwendung RegLoadKey aufrufen, um die Registrierungsdatei, die wiederhergestellt werden soll, mit der aktuell aktiven Registrierung zu verbinden. Sie kann anschließend mittels der verschiedenen Registrierungsfunktionen die gewünschten Schlüssel und Werte in die geladene Struktur kopieren. Nach Abschluss des Kopiervorgangs werden RegFlushKey und RegUnloadKey aufgerufen.
Es gibt einen Registrierungsschlüssel, der einer Wiederherstellungsanwendung (dem Anforderer) die Registrierungsschlüssel unter HKEY_LOCAL_MACHINE\SYSTEM angibt, die zur Wiederherstellungszeit nicht überschrieben werden sollen:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\BackupRestore\KeysNotToRestore
Ein Teil des Systemstatuswiederherstellungsprozesses umfasst die Wiederherstellung einer zuvor gesicherten Registrierung.
Sicherungsanwendungen müssen beim Wiederherstellen der Struktur HKEY_LOCAL_MACHINE\SYSTEM besonders sorgfältig vorgehen, da beim Installieren einer temporären Version des Windows-Betriebssystems Schlüssel in der neu installierten Systemstruktur eingerichtet werden, deren Werte den Wiederherstellungsvorgang überleben müssen.
Wenn das Ersatzsystem beispielsweise eine Netzwerkschnittstellenkarte besitzt, die sich von derjenigen des ursprünglichen Systems 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 in der Registrierung erkannt und platziert hat. Diese Werte müssen beibehalten werden, um nach der Systemwiederherstellung einen ordnungsgemäßen Start sicherzustellen.
In diesem Abschnitt wird beschrieben, wie Sicherungsanwendungen die Schlüssel und Dateien ermitteln können, die bei der Wiederherstellung der Struktur HKEY_LOCAL_MACHINE\SYSTEM beibehalten werden sollen. In einigen Fällen umfasst dies das programmgesteuerte Kopieren der Schlüssel aus der neu installierten Installationsstruktur in die Struktur, die wiederhergestellt werden soll. In anderen Fällen ist die Sicherstellung, dass die Registrierungsschlüssel eines Produkts nicht ersetzt werden, so einfach wie die Angabe dieser Schlüssel in der INF-Konfigurationsdatei des Produkts.
Die Schlüssel (und Schlüsseldaten), die beibehalten werden sollen, werden in der Struktur HKEY_LOCAL_MACHINE\SYSTEM unter dem Schlüssel
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\BackupRestore\KeysNotToRestore
als Sätze von REG_MULTI_SZ-Zeichenfolgen (in diesem Dokument Schlüsselzeichenfolgen genannt) enumeriert.
Eine Sicherungsanwendung (der Anforderer) muss die Werte dieser Schlüssel in der aktiven Registrierung und der neu wiederhergestellten Registrierung untersuchen, da jede Anwendung oder jeder Dienst jederzeit Werte hinzufügen kann.
Die Interpretation von Schlüsselzeichenfolgen durch Sicherungsanwendungen ist vom Terminalzeichen abhängig:
Schlüsselzeichenfolgen, die mit einem umgekehrten Schrägstrich (\) beendet werden, werden als Unterschlüssel interpretiert. Wenn eine solche Teilzeichenfolge gefunden wird, muss die Sicherungsanwendung alle Daten und alle untergeordneten Schlüssel beibehalten.
Im folgenden Beispiel wird angegeben, dass alle untergeordneten Schlüssel und Daten in einem Wiederherstellungsvorgang beibehalten werden sollen:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\dmio\boot info\
Hierzu müssen dieser Schlüssel und alle untergeordneten Schlüssel und Daten aus der vorhandenen Registrierung (d. h. der Registrierung, die während der Windows-Installation erstellt wurde) in die neu wiederhergestellte Registrierung kopiert werden. Dies wird als Schlüsselersetzung bezeichnet. Durch diesen Vorgang wird der entsprechende Schlüssel in der wiederhergestellten Registrierung ersetzt.
Schlüsselzeichenfolgen, die mit einem Sternchen (*) beendet werden, geben an, dass alle Unterschlüssel zusammengeführt werden sollen. Beispielweise gibt die Schlüsselzeichenfolge
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\*
an, dass der Dienstschlüssel in der vorhandenen Registrierung (z. B. einer Registrierung, die während der Windows-Installation erstellt wurde) mit der wiederhergestellten Registrierung zusammengeführt werden muss. Dies wird als Schlüsselzusammenführung bezeichnet. Wenn ein Unterschlüssel sowohl in der vorhandenen Struktur als auch in der wiederhergestellten Struktur vorhanden ist, wird der Schlüssel im wiederhergestellten Verzeichnis beibehalten, mit den folgenden Ausnahmen:
- Der Unterschlüssel in der vorhandenen Struktur enthält den Wert „start“, der Unterschlüssel in der wiederhergestellten Struktur enthält diesen Wert jedoch nicht.
- Der Unterschlüssel in der vorhandenen und in der wiederhergestellten Struktur enthält den Wert „start“, sein numerischer Wert in der vorhandenen Struktur ist jedoch kleiner.
Der Wert „start“ in der Registrierung gibt an, wann ein Dienst oder Treiber gestartet wird, und kann einen numerischen Wert von 0 bis 4 haben. Je niedriger der Wert ist, desto früher wird der Dienst während des Startvorgangs 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 kleiner als der Wert im wiederhergestellten Verzeichnis ist, muss der niedrigere Wert beibehalten werden.
Dieser Schlüssel wird verwendet, um zu bestimmen, ob ein Dienst oder Treiber zur Startzeit, zur Systemzeit, manuell oder automatisch gestartet werden soll oder deaktiviert werden soll. Der kleinere 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.
Schlüsselzeichenfolgen, die weder mit einem umgekehrten Schrägstrich noch mit einem Sternchen beendet werden, werden als Registrierungswerte interpretiert, die beibehalten werden müssen.
Beispielweise gibt 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 einzelner Algorithmus enumeriert:
Führen Sie eine Wiederherstellung der gesicherten Systemstrukturdatei zu einer Datei durch. In diesem Beispiel wird als Name „System.reg“ verwendet.
Verwenden Sie RegLoadKey, um System.reg mit einem temporären Namen in HKEY_LOCAL_MACHINE zu laden. Ein solcher Name könnte beispielsweise sein:
HKEY_LOCAL_MACHINE\TMP_SYSTEM
Enumerieren Sie die Werte im Unterschlüssel KeysNotToRestore aus beiden Registrierungskopien, und erstellen Sie eine Obermenge der Listen. Kopieren Sie die einzelnen Schlüssel aus dem vorhandenen
HKEY_LOCAL_MACHINE\SYSTEM
Schlüssel in den Schlüssel
HKEY_LOCAL_MACHINE\TMP_SYSTEM
entsprechend der oben beschriebenen Semantik.
Verwenden Sie nach dem Abschluss des Vorgangs die Einstiegspunkte RegFlushKey & RegUnloadKey, um den Schlüssel
HKEY_LOCAL_MACHINE\TMP_SYSTEM
wieder in System.reg zu speichern.
Verwenden Sie schließlich RegReplaceKey, um anzugeben, dass System.reg die Strukturdatei
HKEY_LOCAL_MACHINE\SYSTEM
ersetzen soll, SYSTEM.