Partilhar 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 copiado de sombra. Para obter mais informações sobre o gravador do Registro, consulte In-Box Gravadores VSS.

O gravador do registro executa backups in-loco e restaurações do registro. Além disso, o gravador de registro relata apenas colmeias do sistema; ele não relata colmeias de usuários.

Windows Server 2003: O gravador do 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 colmeias do sistema e colmeias de usuário.

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

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

Observação

A Microsoft não fornece suporte técnico para 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á arquivos de registro ativos nos locais definidos pela chave HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\hivelist.

Os nomes dos valores sob esta entrada do 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\caminho\nome do arquivo.

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 das seções do Registro, um solicitante substituiria \Device\HarddiskVolumeX pelo objeto de dispositivo cadeia de caracteres da cópia de sombra do volume.

Observação

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

 

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

Observação

A Restauração do Registro não é suportada no Windows Server 2016 e posterior.

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

As funçõesMoveFileEx e MoveFileTransacted usam essa chave do 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 do Registro PendingFileRenameOperations, seu aplicativo de backup deve chamar a funçãoRegLoadKeypara conectar o arquivo do Registro a ser restaurado para o registro ativo. Seu aplicativo de backup pode então usar as várias funções do registro para copiar as chaves e valores desejados para a colmeia carregada. Depois que a cópia for concluída, as funções RegFlushKey e RegUnloadKey deverão ser chamadas.

Para uma restauração offline (Ambiente de Recuperação do Windows ou Windows PE), não é necessário honrar a chave do 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 somente a operações de restauração relacionadas à recuperação de desastres (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 deve ser restaurado.

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

Há uma chave do 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 previamente copiado.

Os aplicativos de backup precisam ter um 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á chaves estabelecidas 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 interface de rede diferente do sistema original, a restauração das chaves originais para a placa anterior levará a resultados imprevisíveis. Isso ocorre porque o serviço Plug and Play detetou e colocou entradas de registro de driver e serviço 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 da HKEY_LOCAL_MACHINE\SYSTEM colmeia. Em alguns casos, isso envolverá a cópia programática das chaves do hive de instalação recém-instalado para o hive a ser restaurado. Em outros casos, garantir que as chaves do Registro de um produto não sejam substituídas é tão simples quanto especificar essas chaves no arquivo de configuração INF do produto.

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

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 porque 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 pelo seu caráter terminal:

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

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

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\dmio\boot informações\

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

  2. Cadeias de caracteres de chave cujo caractere de terminação é um asterisco ('*') especifica 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, aqueles criados pela instalação do Windows) deve ser mesclada no registro restaurado. Isso é chamado de operação de mesclagem de chave e, se existir uma subchave no hive existente e na seção restaurada, a chave no diretório restaurado será preservada com as seguintes exceções:

    • Se a subchave na seção existente contiver um valor chamado "start" e a subchave na restaurada 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-4. Quanto menor o valor, mais cedo no processo de inicialização o serviço será iniciado.

    Se essa chave existir no diretório existente e restaurado, você deverá examinar o valor da chave inicial em cada colmeia. Se o valor na seção existente for menor do que o valor no diretório restaurado, o valor menor 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 ser desativado. O valor mais baixo representa uma hora de início anterior. A hora de início anterior deve ser aplicada ao novo registro para garantir que o serviço ou 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 do 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 de backup para um arquivo. Para este exemplo, deixe o nome ser System.reg.

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

      HKEY_LOCAL_MACHINE\TMP_SYSTEM

    3. Enumere os valores na subchave KeysNotToRestore de ambas as cópias do Registro e crie um superconjunto das listas. Copie cada uma dessas chaves da chave existente

      HKEY_LOCAL_MACHINE\SYSTEM

      chave para o

      HKEY_LOCAL_MACHINE\TMP_SYSTEM

      chave de acordo com a semântica descrita acima.

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

      HKEY_LOCAL_MACHINE\TMP_SYSTEM

      voltar para System.reg.

    5. Finalmente, use RegReplaceKey para especificar que System.reg deve substituir o

      HKEY_LOCAL_MACHINE\SYSTEM

      arquivo hive, SISTEMA.