Compartilhar via


Operações de backup e restauração do registro no VSS

O Serviço de Registro do Windows oferece suporte a um gravador VSS, chamado gravador de registro, que permite que os solicitantes façam backup de um registro do sistema usando dados armazenados em um volume com cópia de sombra. Para obter mais informações sobre o gravador de registro, consulte Gravadores do VSS In-Box.

O gravador de registro executa backups e restaurações do registro no local. Além disso, o gravador de registro relata apenas hives do sistema, não relata hives do usuário.

Windows Server 2003: o gravador de registro usa um arquivo de repositório intermediário (também conhecido como arquivo spit) para armazenar dados do registro. Além disso, o gravador de registro relata hives do sistema e hives do usuário.

A ID do gravador de registro é AFBAB4A2-367D-4D15-A586-71DBB18F8485.

Windows XP: Não há gravador de registro. Os dados do registro são relatados pelo gravador do estado inicializável, cujo ID do gravador é F2436E37-09F5-41AF-9B2A-4CA2435DBFD5.

Observação

A Microsoft não fornece suporte técnico a desenvolvedores ou profissionais de TI para implementar restaurações de estado do sistema online no Windows (todas as versões). 

Observação

As informações a seguir se aplicam apenas ao Windows Server 2003 e ao Windows XP.

 

Backup do registro usando VSS

O gravador de registro exportará e salvará os arquivos de registro ativos nos locais definidos pela chave HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\hivelist.

Os nomes dos valores nesta entrada de registro identificam o hive do registro a ser salvo e os dados do valor fornecem o arquivo que contém o arquivo (o arquivo hive). Os arquivos hive são especificados com o seguinte formato: \Device\HarddiskVolumeX\path\filename.

Por exemplo, em HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\hivelist, você pode ver \REGISTRY\MACHINE\SOFTWARE = \Device\HarddiskVolume1\Windows\System32\config\SOFTWARE.

O gravador de registro garante que os arquivos hive sejam salvos no disco antes de sua cópia de sombra.

Ao fazer backup dos hives do registro, um solicitante substituiria \Device\HarddiskVolumeX pela cadeia de caracteres do objeto de dispositivo da cópia de sombra do volume.

Observação

Você pode converter o caminho \Device\HarddiskVolumeX em um caminho Win32 equivalente usando a função QueryDosDevice. Para obter mais informações, consulte Obtendo um nome de arquivo a partir de um identificador de arquivo ou Exibindo nomes de caminho de volume.

 

Restauração do registro usando APIs Win32 não VSS

Observação

Não há suporte para a restauração do registro no Windows Server 2016 e posterior.

Para uma restauração online (modo de segurança ou sistema operacional completo), as subchaves na chave de registro HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations devem ser preservadas.

As funções MoveFileEx e MoveFileTransacted usam essa chave de registro para armazenar informações sobre arquivos que foram renomeados usando o valor MOVEFILE_DELAY_UNTIL_REBOOT no parâmetro dwFlags.

Para preservar o conteúdo da chave de registro PendingFileRenameOperations, seu aplicativo de backup deve chamar a função RegLoadKey para conectar o arquivo de registro a ser restaurado ao registro ativo. Seu aplicativo de backup pode usar as várias funções de registro para copiar as chaves e os valores desejados para o hive carregado. Após a conclusão da cópia, as funções RegFlushKey e RegUnloadKey devem ser chamadas.

Para uma restauração offline (Ambiente de Recuperação do Windows ou Windows PE), não é necessário respeitar a chave de registro PendingFileRenameOperations.

Restauração do registro usando APIs Win32 não VSS no Windows Server 2003

Observação

As informações a seguir se aplicam apenas às operações de restauração relacionadas à recuperação de desastre (também conhecida como recuperação bare-metal) executadas no Windows Server 2003.

 

Ao restaurar o registro, um aplicativo de backup precisa mover algumas das subchaves do registro atual para o registro que será restaurado.

Para fazer isso, um aplicativo de backup pode chamar RegLoadKey para conectar o arquivo de registro a ser restaurado ao registro ativo no momento. Ele pode usar as várias funções de registro para copiar as chaves e os valores desejados para o hive carregado. Após a conclusão da cópia, RegFlushKey e RegUnloadKey são chamados.

Existe uma chave de registro que indica a um aplicativo de restauração (solicitante) as chaves do registro em HKEY_LOCAL_MACHINE\SYSTEM que não devem ser substituídas no momento da restauração:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\BackupRestore\KeysNotToRestore

Parte do processo de restauração do estado do sistema envolve a restauração de um registro com backup feito anteriormente.

Os aplicativos de backup precisam ter cuidado especial ao restaurar o hive HKEY_LOCAL_MACHINE\SYSTEM porque o processo de instalação de uma versão temporária do sistema operacional Windows terá estabelecido chaves no hive do sistema recém-instalado, cujos valores devem sobreviver à operação de restauração.

Por exemplo, quando o sistema de substituição tem uma placa de adaptador de rede diferente do sistema original, a restauração das chaves originais da placa anterior levará a resultados imprevisíveis. Isso ocorre porque o serviço Plug and Play detectou e colocou entradas de registro de serviço e driver adequadas no registro. Esses valores devem ser preservados para inicializar corretamente após a restauração do sistema.

Esta seção descreve como os aplicativos de backup podem descobrir quais chaves e arquivos devem ser preservados ao executar uma restauração do hive HKEY_LOCAL_MACHINE\SYSTEM . Em alguns casos, isso envolverá copiar programaticamente as chaves do hive de instalação recém-instalado para o hive a ser restaurado. Em outros casos, garantir que as chaves de registro de um produto não sejam substituídas pode ser tão simples quanto especificar essas chaves no arquivo de configuração INF do produto.

As chaves (e os dados de chave) que devem ser preservados são enumerados no hive HKEY_LOCAL_MACHINE\SYSTEM na chave

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\BackupRestore\KeysNotToRestore

como conjuntos de cadeias de caracteres de REG_MULTI_SZ (chamadas de cadeias de caracteres de chave neste documento).

Um aplicativo de backup (solicitante) deve examinar os valores dessas chaves no registro ativo e no registro recém-restaurado, pois qualquer aplicativo ou serviço pode adicionar valores a qualquer momento.

A forma como as cadeias de caracteres de chave devem ser interpretadas pelos aplicativos de backup é determinada por seu caractere de terminação:

  1. As cadeias de caracteres de chave terminadas com uma barra invertida ('\') são interpretadas como subchaves. Quando essa subcadeia de caracteres é encontrada, o aplicativo de backup deve preservar todos os dados e todas as chaves subordinadas.

    Por exemplo, o seguinte especifica que todas as chaves e dados subordinados devem ser preservados em uma operação de restauração:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\dmio\boot info\

    Para esse fim, essa chave e todas as chaves e dados subordinados devem ser copiados do registro existente (ou seja, aquele criado pela instalação do Windows) para o registro recém-restaurado. Isso é chamado de operação de substituição de chave. Essa operação substitui a chave correspondente no registro restaurado.

  2. As cadeias de caracteres de chave cujo caractere de terminação é um asterisco ("*") especificam que todas as subchaves devem ser mescladas. Por exemplo, a cadeia de caracteres de chave:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\*

    especifica que a chave de serviços no registro existente (por exemplo, aquelas criadas pela instalação do Windows) deve ser mesclada no registro restaurado. Isso é chamado de operação de mesclagem de chaves e, se houver uma subchave no hive existente e no hive restaurado, a chave no diretório restaurado será preservada com as seguintes exceções:

    • Se a subchave no hive existente contiver um valor chamado "start" e a subchave no restaurado não.
    • Se a subchave no hive existente e restaurado contiver um valor chamado "start" e seu valor numérico no hive existente for menor.

    O valor "start" no registro especifica quando um serviço ou driver será iniciado e pode ter um valor numérico de 0 a 4. Quanto menor o valor, mais cedo o serviço será iniciado no processo de inicialização.

    Se essa chave existir no diretório existente e no restaurado, você deverá examinar o valor da chave inicial em cada hive. Se o valor no hive existente for menor que o valor no diretório restaurado, o valor mais baixo deverá ser preservado.

    Mais uma vez, essa chave é usada para determinar se um serviço ou driver deve ser iniciado no momento da inicialização, no momento do sistema, manualmente, automaticamente ou desabilitado. O valor mais baixo representa uma hora de início mais cedo. A hora de início anterior deve ser aplicada ao novo registro para garantir que o serviço ou os drivers sejam iniciados corretamente na próxima inicialização.

  3. As cadeias de caracteres de chave cujo caractere de terminação não é uma barra invertida nem um asterisco são interpretadas como valores de registro a serem preservados.

    Por exemplo, a cadeia de caracteres de chave:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations

    O mecanismo pelo qual as chaves podem ser preservadas programaticamente envolve a API do registro Win32. Por exemplo, um algoritmo é enumerado abaixo:

    1. Restaure o arquivo hive do sistema com backup em um arquivo. Para este exemplo, deixe o nome ser System.reg.

    2. Use RegLoadKey para carregar System.reg no HKEY_LOCAL_MACHINE com um nome temporário. Por exemplo, um desses nomes pode ser

      HKEY_LOCAL_MACHINE\TMP_SYSTEM

    3. Enumere os valores na subchave KeysNotToRestore das duas cópias do registro e crie um superconjunto das listas. Copie cada uma dessas chaves da chave

      HKEY_LOCAL_MACHINE\SYSTEM

      existente na chave

      HKEY_LOCAL_MACHINE\TMP_SYSTEM

      de acordo com a semântica descrita acima.

    4. Quando terminar, use os pontos de entrada RegFlushKey & RegUnloadKey para salvar a chave

      HKEY_LOCAL_MACHINE\TMP_SYSTEM

      de volta para System.reg.

    5. Por fim, use RegReplaceKey para especificar que System.reg deve substituir o arquivo hive

      HKEY_LOCAL_MACHINE\SYSTEM

      SYSTEM.