Säkerhetskopierings- och återställningsåtgärder för registret under VSS
Windows Registry Service har stöd för en VSS-skrivare, kallad registerskrivare, som gör det möjligt för begärande att säkerhetskopiera ett systemregister med hjälp av data som lagras på en skuggkopieringsvolym. Mer information om registerskrivaren finns i In-Box VSS Writers.
Registerskrivaren utför säkerhetskopieringar och återställningar på plats av registret. Dessutom rapporterar registerskrivaren endast systemdatafiler. den rapporterar inte användardatafiler.
Windows Server 2003: Registerskrivaren använder en mellanliggande lagringsplatsfil (kallas även spettefil) för att lagra registerdata. Dessutom rapporterar registerskrivaren systemdatafiler och användardatafiler.
Skrivar-ID:t för registerskrivaren är AFBAB4A2-367D-4D15-A586-71DBB18F8485.
Windows XP: Det finns ingen registerskrivare. Registerdata rapporteras av skrivaren Bootable State, vars skrivar-ID är F2436E37-09F5-41AF-9B2A-4CA2435DBFD5.
Anteckning
Microsoft tillhandahåller inte teknisk support för utvecklare eller IT-tekniker för att implementera återställningar av onlinesystemtillstånd i Windows (alla versioner).
Anteckning
Följande information gäller endast för Windows Server 2003 och Windows XP.
Registerskrivaren exporterar och sparar aktiva registerfiler på de platser som definieras av nyckeln HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\hivelist.
Namnen på värdena under den här registerposten identifierar registreringsdatafilen som ska sparas, och värdets data innehåller filen som innehåller filen (hive-filen). Hive-filerna anges med följande format: \Device\HarddiskVolumeX\sökväg\filnamn.
Under HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\hivelistkan du till exempel se \REGISTRY\MACHINE\SOFTWARE = \Device\HarddiskVolume1\Windows\System32\config\SOFTWARE.
Registerskrivaren ser till att hive-filer sparas på disken före skuggkopian.
När du säkerhetskopierar registerdatafilerna ersätter en beställare \Device\HarddiskVolumeX- med enhetsobjektet strängen i volymens skuggkopia.
Anteckning
Du kan konvertera sökvägen \Device\HarddiskVolumeX till en motsvarande Win32-sökväg med hjälp av funktionen QueryDosDevice. Mer information finns i Hämta ett filnamn från en filreferens eller visa namn på volymsökvägar.
Anteckning
Registeråterställning stöds inte på Windows Server 2016 och senare.
För en onlineåterställning (felsäkert läge eller fullständigt operativsystem) måste undernycklarna i HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations registernyckel bevaras.
Funktionerna MoveFileEx och MoveFileTransacted använder den här registernyckeln för att lagra information om filer som har bytt namn med hjälp av värdet MOVEFILE_DELAY_UNTIL_REBOOT i parametern dwFlags.
För att bevara innehållet i PendingFileRenameOperations registernyckeln bör säkerhetskopieringsprogrammet anropa funktionen RegLoadKey för att ansluta registerfilen som ska återställas till det aktiva registret. Ditt säkerhetskopieringsprogram kan sedan använda de olika registerfunktionerna för att kopiera önskade nycklar och värden till den inlästa registreringsfilen. När kopian är klar ska funktionerna RegFlushKey och RegUnloadKey anropas.
För en offlineåterställning (Windows Recovery Environment eller Windows PE) är det inte nödvändigt att respektera registernyckeln PendingFileRenameOperations.
Anteckning
Följande information gäller endast för återställningsåtgärder relaterade till haveriberedskap (kallas även återställning utan operativsystem) som utförs i Windows Server 2003.
När du återställer registret måste ett säkerhetskopieringsprogram flytta några av undernycklarna från det aktuella registret till registret som ska återställas.
För att göra detta kan ett säkerhetskopieringsprogram anropa RegLoadKey- för att ansluta registerfilen som ska återställas till det aktiva registret. Den kan sedan använda de olika registerfunktionerna för att kopiera önskade nycklar och värden till den inlästa registreringsdatafilen. När kopian är klar anropas RegFlushKey och RegUnloadKey.
Det finns en registernyckel som anger för ett återställningsprogram (beställaren) registernycklarna under HKEY_LOCAL_MACHINE\SYSTEM som inte ska skrivas över vid återställningstillfället:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\BackupRestore\KeysNotToRestore
En del av återställningsprocessen för systemtillståndet omfattar återställning av ett tidigare säkerhetskopierat register.
Säkerhetskopieringsprogram måste vara särskilt försiktiga när du återställer den HKEY_LOCAL_MACHINE\SYSTEM hive eftersom processen med att installera en tillfällig version av Windows-operativsystemet har etablerade nycklar i den nyligen installerade systemdatafilen vars värden måste överleva återställningsåtgärden.
Om ersättningssystemet till exempel har ett nätverkskort som skiljer sig från det ursprungliga systemet leder återställningen av de ursprungliga nycklarna för föregående kort till oförutsägbara resultat. Det beror på att Plug and Play-tjänsten har identifierat och placerat rätt tjänst- och drivrutinsregisterposter i registret. Dessa värden måste bevaras för att startas korrekt efter systemåterställning.
I det här avsnittet beskrivs hur säkerhetskopieringsprogram kan identifiera vilka nycklar och filer som ska bevaras när du kör en återställning av HKEY_LOCAL_MACHINE\SYSTEM hive. I vissa fall innebär detta att du programmatiskt kopierar nycklarna från den nyligen installerade installationsdatafilen till den hive som ska återställas. I andra fall är det lika enkelt att se till att en produkts registernycklar inte ersätts som att ange sådana nycklar i produktens INF-konfigurationsfil.
Nycklar (och nyckeldata) som ska bevaras räknas upp i den HKEY_LOCAL_MACHINE\SYSTEM hive under
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\BackupRestore\KeysNotToRestore
nyckel som uppsättningar med REG_MULTI_SZ strängar (kallas nyckelsträngar i det här dokumentet).
Ett säkerhetskopieringsprogram (beställare) måste undersöka värdena för dessa nycklar i det aktiva registret och det nyligen återställde registret eftersom alla program eller tjänster kan lägga till värden när som helst.
Hur nyckelsträngar ska tolkas av säkerhetskopieringsprogram bestäms av deras terminaltecken:
Nyckelsträngar som avslutas med ett omvänt snedstreck ('\') tolkas som undernycklar. När en sådan delsträng påträffas måste säkerhetskopieringsprogrammet bevara alla data och alla underordnade nycklar.
Följande anger till exempel att alla underordnade nycklar och data ska bevaras i en återställningsåtgärd:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\dmio\boot info\
I detta syfte måste den här nyckeln och alla underordnade nycklar och data kopieras från det befintliga registret (dvs. den som skapades av installationen av Windows) till det nyligen återställde registret. Detta kallas för en nyckel ersätt åtgärd. Den här åtgärden ersätter motsvarande nyckel i det återställde registret.
Nyckelsträngar vars avslutningstecken är en asterisk ('*') anger att alla undernycklar ska sammanfogas. Till exempel nyckelsträngen:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\*
anger att tjänstnyckeln i det befintliga registret (till exempel de som skapats av installationen av Windows) måste sammanfogas i det återställde registret. Detta kallas för en nyckelsammanslagning åtgärd, och om det finns en undernyckel i både den befintliga hive-filen och den återställda hiven bevaras nyckeln i den återställda katalogen med följande undantag:
- Om undernyckeln i den befintliga hive-filen innehåller ett värde med namnet "start" och undernyckeln i den återställde inte gör det.
- Om undernyckeln i både den befintliga och återställda hiven innehåller ett värde med namnet "start" och dess numeriska värde i den befintliga hiven är mindre.
Värdet "start" i registret anger när en tjänst eller drivrutin startar och kan ha ett numeriskt värde från 0–4. Ju lägre värdet är, desto tidigare i startprocessen startar tjänsten.
Om den här nyckeln finns i både den befintliga och den återställda katalogen måste du undersöka värdet för startnyckeln i varje hive. Om värdet i den befintliga hiven är lägre än värdet i den återställde katalogen måste det lägre värdet bevaras.
Återigen används den här nyckeln för att avgöra om en tjänst eller drivrutin ska startas vid start, vid systemtid, manuellt, automatiskt eller inaktiveras. Det lägre värdet representerar en tidigare starttid. Den tidigare starttiden måste tillämpas på det nya registret för att säkerställa att tjänsten eller drivrutinerna startas korrekt vid nästa start.
Nyckelsträngar vars avslutningstecken varken är ett omvänt snedstreck eller en asterisk tolkas som registervärden som ska bevaras.
Till exempel nyckelsträngen:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations
Den mekanism med vilken nycklar kan bevaras programmatiskt omfattar Win32-register-API:et. Till exempel räknas en algoritm upp nedan:
Återställ den säkerhetskopierade systemdatafilen till en fil. I det här exemplet ska namnet vara System.reg.
Använd RegLoadKey för att läsa in System.reg i HKEY_LOCAL_MACHINE under ett tillfälligt namn. Ett sådant namn kan till exempel vara
HKEY_LOCAL_MACHINE\TMP_SYSTEM
Räkna upp värdena i KeysNotToRestore undernyckel från båda registerkopior och skapa en supermängd av listorna. Kopiera varje sådan nyckel från den befintliga
HKEY_LOCAL_MACHINE\SYSTEM
nyckeln till
HKEY_LOCAL_MACHINE\TMP_SYSTEM
enligt semantiken som beskrivs ovan.
När du är klar använder du RegFlushKey & RegUnloadKey startpunkter för att spara
HKEY_LOCAL_MACHINE\TMP_SYSTEM
tillbaka till System.reg.
Använd slutligen RegReplaceKey- för att ange att System.reg ska ersätta
HKEY_LOCAL_MACHINE\SYSTEM
hive-fil, SYSTEM.