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).
| Hive | Arquivo | Conteúdo principal |
|---|---|---|
HKEY_LOCAL_MACHINE (HKLM) | SYSTEM, SOFTWARE, etc. | Configuração da máquina (todos os usuários) |
HKEY_CURRENT_USER (HKCU) | %USERPROFILE%\NTUSER.DAT | Configuração do perfil atual |
HKEY_USERS | Todos os perfis de usuários | Reúne o HKCU de cada usuário |
HKEY_CLASSES_ROOT (HKCR) | Fusão HKLM\SOFTWARE\Classes e HKCU\Software\Classes | Associações de arquivos, COM |
HKEY_CURRENT_CONFIG | Link para a configuração de hardware ativa | Parâ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:eHKCU: - Possibilidade de navegar com
Set-Location,Get-ChildItem, etc.
Exemplos práticos com PowerShell
Teste estes exemplos na sua máquina virtual
Navegar no registro
# 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
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
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
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
-WhatIfe-ConfirmRemove-Item -Path 'HKCU:\Software\Test' -Recurse -WhatIf -
Prefira PowerShell ao
reg.exepara automação -
Restringir as ACLs
- Verifique/modifique via
Get-Acl/Set-Aclse necessário.
- Verifique/modifique via
Para lembrar
- O registro é o coração da configuração do Windows, centralizado e hierárquico.
- Ele substitui os arquivos INI: mais robusto, seguro e performático.
- Cada hive corresponde a um contexto (máquina/usuário).
- O PowerShell oferece um provider nativo para navegar e modificar o registro em scripts.
- Sempre faça backup e teste antes de qualquer modificação em produção.