FolioPierEstudos de TI

O registro do Windows

Nota 12 de 20 · 5 min de leitura
Nesta página
  1. Chaves e valores
  2. As chaves que mais aparecem no suporte
  3. A visão de 32 bits
  4. As ferramentas
  5. Os cuidados antes de alterar

Uma configuração que o programa guarda e que não aparece em nenhum arquivo, um sistema que mantém as preferências de um usuário e esquece as de outro e um procedimento que manda conferir uma chave costumam envolver o registro do Windows. O registro é o banco de configurações do sistema e de muitos programas, e uma alteração errada nele pode impedir um programa, ou o próprio Windows, de iniciar.

Chaves e valores

O registro se organiza como as pastas e os arquivos de um disco:

  • Chave: o equivalente a uma pasta, que pode conter outras chaves e valores;
  • Valor: a configuração em si, com um nome, um tipo e um dado;
  • Tipo: o formato do dado, como REG_SZ, para um texto, REG_DWORD, para um número, e REG_MULTI_SZ, para uma lista de textos.

As chaves principais, chamadas de raízes, separam as configurações do computador e as de cada usuário:

  • HKEY_LOCAL_MACHINE, abreviada como HKLM: as configurações do computador, válidas para todos os usuários;
  • HKEY_CURRENT_USER, abreviada como HKCU: as configurações do usuário conectado;
  • HKEY_USERS: as configurações de todos os perfis carregados, inclusive os das contas dos serviços;
  • HKEY_CLASSES_ROOT: as associações de arquivos e os registros dos componentes COM.

A parte de cada usuário fica guardada no arquivo NTUSER.DAT do perfil, e por isso uma configuração gravada em HKCU vale só para aquela conta. Os serviços que rodam como Sistema Local usam outra área do registro e não enxergam o HKCU do usuário conectado.

As chaves que mais aparecem no suporte

Algumas chaves concentram as configurações consultadas com mais frequência:

  • HKLM\SOFTWARE\Fabricante\Programa: a configuração geral de um programa, organizada pelo nome do fabricante e do programa;
  • HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall: a lista de programas instalados, usada pela tela Programas e Recursos;
  • HKLM\SYSTEM\CurrentControlSet\Services\MySQL: a configuração do serviço MySQL, com o caminho do executável no valor ImagePath e o tipo de inicialização no valor Start;
  • HKCU\Software\Microsoft\Windows\CurrentVersion\Run: os programas que abrem quando o usuário entra no Windows, e a mesma chave em HKLM vale para todos os usuários;
  • HKCU\Control Panel\International: as configurações regionais do usuário, como o separador decimal.

No valor Start de um serviço, o número 2 indica o início automático, o 3 indica o manual, e o 4 indica o serviço desativado.

A visão de 32 bits

No Windows de 64 bits, um programa de 32 bits que lê ou grava em HKLM\SOFTWARE é desviado para HKLM\SOFTWARE\WOW6432Node. O Editor do Registro mostra as duas áreas, e uma configuração procurada em SOFTWARE e gravada por um programa de 32 bits está em WOW6432Node. A lista dos programas de 32 bits instalados também fica nessa área, em HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall.

Programas antigos de 32 bits, abertos sem a permissão de administrador, que tentam gravar em HKLM\SOFTWARE, são desviados para uma cópia particular do usuário, em HKCU\Software\Classes\VirtualStore\MACHINE\SOFTWARE. O programa encontra a configuração alterada, mas os outros usuários continuam vendo a configuração original.

As ferramentas

O registro é consultado e alterado com estas ferramentas:

  • regedit: abre o Editor do Registro, com a navegação pelas chaves, a busca e a exportação;
  • reg query HKLM\SYSTEM\CurrentControlSet\Services\MySQL /v ImagePath: mostra um valor pelo prompt de comando;
  • reg query HKLM\SOFTWARE\Fabricante /reg:32: consulta a visão de 32 bits do registro, a mesma usada pelos programas de 32 bits;
  • reg export HKLM\SOFTWARE\Fabricante C:\Temp\fabricante.reg: grava uma cópia da chave em um arquivo;
  • reg import C:\Temp\fabricante.reg: grava no registro o conteúdo do arquivo.

No PowerShell, o registro aparece como uma unidade, e o comando Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*" | Select-Object DisplayName, DisplayVersion lista os programas instalados e as versões.

Os cuidados antes de alterar

Uma alteração no registro vale na hora, sem um botão de salvar e sem a opção de desfazer. Antes de alterar uma chave, a exportação guarda o estado anterior em um arquivo .reg, e a importação desse arquivo devolve os valores exportados. A importação acrescenta e substitui valores, mas não apaga os valores criados depois da exportação.

Um arquivo .reg é um texto que altera o registro quando é aberto com um duplo clique. O conteúdo de um arquivo recebido de terceiros pode ser lido no Bloco de Notas antes da importação.

Muitas configurações só passam a valer quando o programa é aberto de novo, quando o serviço é reiniciado ou quando o usuário entra de novo no Windows.

Os programas de limpeza do registro apagam entradas que parecem sobras de programas antigos. A Microsoft não oferece suporte a esses programas, porque uma entrada apagada por engano pode impedir um programa ou o Windows de funcionar.

No suporte

Antes de alterar o registro, convém exportar a chave, registrar o valor antigo e seguir o procedimento do fabricante. Uma chave que não aparece em SOFTWARE pode estar em WOW6432Node, quando o programa é de 32 bits, e uma configuração que vale para um usuário e não para outro costuma estar em HKCU.

Para guardar

  • O registro guarda as configurações em chaves e valores, como pastas e arquivos.
  • HKLM vale para o computador, e HKCU vale para o usuário conectado.
  • No Windows de 64 bits, os programas de 32 bits usam a área WOW6432Node.
  • A exportação de uma chave para um arquivo .reg guarda o estado anterior a uma alteração.
  • Uma alteração no registro vale na hora e não tem desfazer.
O procedimento do fabricante manda conferir a chave HKLM\SOFTWARE\Fabricante, mas ela não aparece no Editor do Registro de um Windows de 64 bits. O programa está mal instalado?

Não necessariamente. Se o programa é de 32 bits, a chave fica em HKLM\SOFTWARE\WOW6432Node\Fabricante, porque o Windows desvia para essa área as gravações dos programas de 32 bits.

Depois da importação de um arquivo .reg com a configuração antiga, o programa continua com um comportamento que surgiu depois da alteração. Por quê?

A importação acrescenta e substitui os valores do arquivo, mas não apaga os valores criados depois da exportação. Um valor novo, criado na alteração, continua na chave e precisa ser removido conforme o procedimento.

Publicado a partir do Obsidian · FolioPier