Pular para o conteúdo principal

Registro do Windows

Contexto e histórico​

  • Antes do Windows 95

    • Configuração armazenada em arquivos de texto (INI) espalhados em vários locais.
    • Problemas: duplicação, inconsistências, dificuldade de gerenciamento centralizado.
  • Introdução do registro

    • O Windows 95 inaugura o registro (Registry): um repositório hierárquico centralizado.
    • Objetivo: unificar a configuração do sistema e de aplicativos.

Por que o registro existe​

  • Centralização

    • Substitui os múltiplos INI, CFG e .INF.
  • Hierarquização

    • Estrutura de chave/valor em árvore, mais estruturada que arquivos planos.
  • Performance e atomicidade

    • Leitura/gravação otimizadas, suporte a transações parciais.
  • Segurança

    • ACL (permissões estilo NTFS) em cada chave do registro.

Estrutura geral​

O registro é organizado em hives (colmeias). Cada hive corresponde a um grande arquivo armazenado em disco (em %SystemRoot%\System32\Config para as hives de máquina, e no perfil do usuário para HKCU).

HiveArquivoConteúdo principal
HKEY_LOCAL_MACHINE (HKLM)SYSTEM, SOFTWARE, etc.Configuração da máquina (todos os usuários)
HKEY_CURRENT_USER (HKCU)%USERPROFILE%\NTUSER.DATConfiguração do perfil atual
HKEY_USERSTodos os perfis de usuáriosReúne o HKCU de cada usuário
HKEY_CLASSES_ROOT (HKCR)Fusão HKLM\SOFTWARE\Classes e HKCU\Software\ClassesAssociações de arquivos, COM
HKEY_CURRENT_CONFIGLink para a configuração de hardware ativaParâmetros de hardware dinâmicos

Chaves, subchaves e valores​

  • Chave: equivalente a uma pasta (contendo subchaves e valores).

  • Valor: par (Nome, Tipo, Dado).

    • Tipos comuns:

      • REG_SZ (string),
      • REG_DWORD (inteiro 32 bits),
      • REG_QWORD (inteiro 64 bits),
      • REG_MULTI_SZ (array de strings),
      • REG_BINARY (dados brutos).

Editor de Registro (regedit.exe)​

  • Funcionalidades

    • Navegação visual da árvore.
    • Exportação/Importação de .reg.
    • Modificar ACL (clique direito → Permissões).
  • Advertências

    • Frequentemente requer privilégios de administrador.
    • Uma modificação incorreta pode tornar o Windows instável.

O provider Registry no PowerShell​

O PowerShell expõe o registro como um provider do tipo sistema de arquivos:

  • Raízes: HKLM: e HKCU:
  • Possibilidade de navegar com Set-Location, Get-ChildItem, etc.

Exemplos práticos com PowerShell​

perigo

Teste estes exemplos na sua máquina virtual

# Listar as hives de máquina
Get-ChildItem -Path Registry::HKLM

# Listar as chaves sob SOFTWARE
Get-ChildItem -Path HKLM:\SOFTWARE

Ler valores​

# Valor de uma chave
Get-ItemProperty -Path 'HKCU:\Control Panel\Desktop' -Name Wallpaper

# Leitura de todas as propriedades
Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Lsa'

Testar a existência de uma chave ou valor​

# Chave existente?
Test-Path -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion'

# Valor existente?
(Get-ItemProperty -Path HKCU:\... -Name 'NomValeur' -ErrorAction SilentlyContinue) -ne $null

Criar uma subchave e um valor​

atenção

Substitua Username pelo seu nome de usuário

# Criar a chave MyApp
New-Item -Path 'HKCU:\Software\Username\MyApp' -Force

# Adicionar um valor string
New-ItemProperty -Path 'HKCU:\Software\Username\MyApp' `
-Name 'MessageBienvenue' `
-Value 'Bienvenue dans MyApp!' `
-PropertyType String -Force

# Adicionar um DWORD
New-ItemProperty -Path 'HKCU:\Software\Username\MyApp' `
-Name 'Enabled' `
-Value 1 `
-PropertyType DWord -Force

Modificar um valor existente​

# Desativar inicialização rápida (exemplo de sistema)
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Power' `
-Name 'HiberbootEnabled' `
-Value 0

Remover uma chave ou valor​

atenção

Substitua Username pelo seu nome de usuário

# Remover um valor
Remove-ItemProperty -Path 'HKCU:\Software\Username\MyApp' -Name 'MessageBienvenue'

# Remover a subchave inteira
Remove-Item -Path 'HKCU:\Software\Username\MyApp' -Recurse -Force

Exportar e importar​

atenção

Substitua Username pelo seu nome de usuário

# Exportar um ramo para .reg
reg export "HKCU\Software\Username\MyApp" C:\temp\myapp.reg /y

# Importar um .reg
reg import C:\temp\myapp.reg

Exemplo avançado: mudar o papel de parede​

# Definir o caminho da imagem
$wall = 'C:\Images\montagne.jpg'

# Modificar a chave
Set-ItemProperty -Path 'HKCU:\Control Panel\Desktop' `
-Name 'Wallpaper' `
-Value $wall

# Atualizar a exibição
Add-Type -AssemblyName user32
[User32]::SystemParametersInfo(0x0014, 0, $wall, 0x0002)

Segurança e boas práticas​

  • Fazer backup antes de modificar

    reg export "HKLM\SOFTWARE" C:\backup\software-hive.reg /y
  • Utilizar -WhatIf e -Confirm

    Remove-Item -Path 'HKCU:\Software\Test' -Recurse -WhatIf
  • Prefira PowerShell ao reg.exe para automação

  • Restringir as ACLs

    • Verifique/modifique via Get-Acl / Set-Acl se necessário.

Para lembrar​

  1. O registro é o coração da configuração do Windows, centralizado e hierárquico.
  2. Ele substitui os arquivos INI: mais robusto, seguro e performático.
  3. Cada hive corresponde a um contexto (máquina/usuário).
  4. O PowerShell oferece um provider nativo para navegar e modificar o registro em scripts.
  5. Sempre faça backup e teste antes de qualquer modificação em produção.