TL;DR — Resumo Rápido

Como ler, escrever e excluir entradas do Registro do Windows usando Regedit, reg.exe, cmdlets do PowerShell (Get-ItemProperty, Set-ItemProperty, Remove-ItemProperty), Preferências de Política de Grupo e scripting.

O Registro do Windows é um banco de dados hierárquico que armazena definições de configuração do sistema operacional, aplicativos e hardware. Saber como ler, escrever e excluir entradas do registro é essencial para a administração de sistemas, solução de problemas e configuração de aplicativos. Este guia cobre múltiplos métodos, incluindo o editor gráfico, ferramentas de linha de comando e PowerShell.

Compreendendo a estrutura do Registro

O registro é organizado em cinco chaves raiz (hives):

Hive Abreviatura Finalidade
HKEY_LOCAL_MACHINE HKLM Configurações de todo o computador (hardware, software, sistema)
HKEY_CURRENT_USER HKCU Configurações do usuário atualmente conectado
HKEY_CLASSES_ROOT HKCR Associações de arquivos e registros de objetos COM
HKEY_USERS HKU Configurações de todos os perfis de usuário na máquina
HKEY_CURRENT_CONFIG HKCC Informações do perfil de hardware atual

Cada hive contém chaves (como pastas) e valores (como arquivos). Os valores possuem um nome, um tipo e dados.

Tipos de valores comuns

Tipo Descrição Exemplo
REG_SZ String C:\Program Files\MyApp
REG_DWORD Inteiro de 32 bits 1 (frequentemente usado para ligar/desligar)
REG_QWORD Inteiro de 64 bits 4294967296
REG_BINARY Dados binários 01 00 00 00
REG_EXPAND_SZ String expansível (variáveis de ambiente) %SystemRoot%\System32
REG_MULTI_SZ Multi-string (array de strings) String1\0String2\0

Método 1: Editor do Registro (Regedit)

O Editor do Registro gráfico é a forma mais comum de navegar e editar o registro.

Abrindo o Regedit

  1. Pressione Win + R, digite regedit e pressione Enter.
  2. Aceite o prompt do UAC (privilégios de administrador são necessários para alterações no HKLM).

Lendo valores

  1. Navegue até a chave desejada no painel esquerdo usando a estrutura de árvore.
  2. Os valores da chave selecionada aparecem no painel direito mostrando o nome, tipo e dados.

Escrevendo (criando ou modificando) valores

Para criar um novo valor:

  1. Navegue até a chave de destino.
  2. Clique com o botão direito no painel direito e selecione Novo > escolha o tipo de valor (Valor da Cadeia de Caracteres, DWORD, etc.).
  3. Digite o nome do valor e pressione Enter.
  4. Clique duas vezes no novo valor para definir seus dados.

Para modificar um valor existente:

  1. Clique duas vezes no valor no painel direito.
  2. Altere os dados e clique em OK.

Excluindo valores ou chaves

  1. Clique com o botão direito no valor ou chave.
  2. Selecione Excluir.
  3. Confirme a exclusão.

Fazendo backup antes das alterações

Sempre exporte um backup antes de fazer alterações:

  1. Clique com o botão direito na chave que está prestes a modificar.
  2. Selecione Exportar.
  3. Salve o arquivo .reg em um local seguro.

Para restaurar, clique duas vezes no arquivo .reg e confirme a importação.

Método 2: Ferramenta de linha de comando reg.exe

O comando reg é integrado ao Windows e é útil para scripting e arquivos em lote.

Lendo valores

:: Read a specific value
reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion" /v ProgramFilesDir

:: List all values under a key
reg query "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run"

:: Recursive query
reg query "HKLM\SOFTWARE\MyApp" /s

Escrevendo valores

:: Create or modify a string value (REG_SZ)
reg add "HKCU\SOFTWARE\MyApp" /v SettingName /t REG_SZ /d "SettingValue" /f

:: Create a DWORD value
reg add "HKCU\SOFTWARE\MyApp" /v EnableFeature /t REG_DWORD /d 1 /f

:: Create a QWORD value
reg add "HKCU\SOFTWARE\MyApp" /v LargeNumber /t REG_QWORD /d 8589934592 /f

:: Create an expandable string value
reg add "HKLM\SOFTWARE\MyApp" /v InstallPath /t REG_EXPAND_SZ /d "%ProgramFiles%\MyApp" /f

A flag /f força a operação sem solicitar confirmação.

Excluindo valores e chaves

:: Delete a specific value
reg delete "HKCU\SOFTWARE\MyApp" /v SettingName /f

:: Delete an entire key and all its values and subkeys
reg delete "HKCU\SOFTWARE\MyApp" /f

Exportando e importando

:: Export a key to a .reg file
reg export "HKCU\SOFTWARE\MyApp" C:\backup\myapp_settings.reg

:: Import a .reg file
reg import C:\backup\myapp_settings.reg

Método 3: PowerShell

O PowerShell oferece a abordagem mais flexível para gerenciamento do registro, utilizando cmdlets que tratam o registro como um sistema de arquivos.

O PowerShell mapeia as ramificações do registro como PSDrives:

# List available registry drives
Get-PSDrive -PSProvider Registry

# Navigate to HKLM
Set-Location HKLM:\SOFTWARE\Microsoft

# List subkeys
Get-ChildItem HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion

Lendo valores

# Read all values in a key
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion"

# Read a specific value
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion" -Name "ProgramFilesDir"

# Get just the value data
(Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion").ProgramFilesDir

# Check if a value exists
$value = Get-ItemProperty -Path "HKCU:\SOFTWARE\MyApp" -Name "Setting" -ErrorAction SilentlyContinue
if ($value) {
    Write-Host "Value exists: $($value.Setting)"
} else {
    Write-Host "Value does not exist"
}

Escrevendo valores

# Create a new key
New-Item -Path "HKCU:\SOFTWARE\MyApp" -Force

# Create or modify a string value
Set-ItemProperty -Path "HKCU:\SOFTWARE\MyApp" -Name "AppName" -Value "My Application"

# Create a DWORD value
New-ItemProperty -Path "HKCU:\SOFTWARE\MyApp" -Name "EnableFeature" `
    -Value 1 -PropertyType DWORD -Force

# Create a multi-string value
New-ItemProperty -Path "HKCU:\SOFTWARE\MyApp" -Name "ServerList" `
    -Value @("Server01", "Server02", "Server03") -PropertyType MultiString -Force

# Create a binary value
New-ItemProperty -Path "HKCU:\SOFTWARE\MyApp" -Name "BinaryData" `
    -Value ([byte[]](0x01, 0x02, 0x03, 0x04)) -PropertyType Binary -Force

# Create an expandable string value
New-ItemProperty -Path "HKCU:\SOFTWARE\MyApp" -Name "LogPath" `
    -Value "%USERPROFILE%\Logs" -PropertyType ExpandString -Force

Excluindo valores e chaves

# Delete a specific value
Remove-ItemProperty -Path "HKCU:\SOFTWARE\MyApp" -Name "EnableFeature"

# Delete an entire key and all its contents
Remove-Item -Path "HKCU:\SOFTWARE\MyApp" -Recurse -Force

# Delete a value only if it exists
if (Get-ItemProperty -Path "HKCU:\SOFTWARE\MyApp" -Name "Setting" -ErrorAction SilentlyContinue) {
    Remove-ItemProperty -Path "HKCU:\SOFTWARE\MyApp" -Name "Setting"
}

Consultando o Registro remoto

# Read registry on a remote computer
Invoke-Command -ComputerName "Server01" -ScriptBlock {
    Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion" -Name "ProgramFilesDir"
}

Método 4: Preferências de Política de Grupo

Para ambientes corporativos, as Preferências de Política de Grupo (GPP) são a forma recomendada de implantar alterações no registro em vários computadores.

Passos

  1. Abra o Console de Gerenciamento de Política de Grupo e edite um GPO.
  2. Navegue até Configuração do Computador (ou Configuração do Usuário) > Preferências > Configurações do Windows > Registro.
  3. Clique com o botão direito e selecione Novo > Item do Registro.
  4. Configure o item do registro:
    • Ação: Criar, Substituir, Atualizar ou Excluir
    • Hive: Selecione a chave raiz
    • Caminho da chave: Insira o caminho completo
    • Nome do valor: O nome do valor
    • Tipo do valor: REG_SZ, REG_DWORD, etc.
    • Dados do valor: Os dados a serem definidos
  5. Clique em OK.

Ações explicadas

Ação Comportamento
Criar Cria o valor somente se ele ainda não existir
Substituir Exclui e recria o valor (remove primeiro se existir, depois cria)
Atualizar Cria o valor se não existir, ou o modifica se existir
Excluir Remove o valor

Atualizar é a ação mais utilizada porque lida tanto com a criação quanto com a modificação.

Caminhos comuns do Registro

Aqui estão as localizações do registro acessadas com frequência:

Caminho Finalidade
HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run Programas de inicialização do usuário atual
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run Programas de inicialização de todos os usuários
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall Lista de programas instalados
HKLM\SYSTEM\CurrentControlSet\Services Configuração de serviços do Windows
HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer Configurações do shell do Explorer
HKLM\SOFTWARE\Policies Configurações de Política de Grupo do computador
HKCU\SOFTWARE\Policies Configurações de Política de Grupo do usuário
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion Informações da versão do Windows

Melhores práticas de segurança

  • Sempre faça backup antes de fazer alterações. Exporte a chave ou crie um ponto de restauração do sistema.
  • Nunca exclua chaves que você não compreende, especialmente sob HKLM\SYSTEM ou HKLM\SOFTWARE\Microsoft\Windows NT.
  • Teste as alterações em uma única máquina antes de implantá-las em vários computadores via GPO.
  • Use Preferências de Política de Grupo para implantação corporativa em vez de edição manual ou scripts de logon.
  • Documente todas as alterações para que possam ser revertidas se surgirem problemas.
  • Use a flag /f com cuidado com reg.exe, pois ela ignora os prompts de confirmação.

Resumo

As entradas do Registro do Windows podem ser lidas, escritas e excluídas por meio de múltiplos métodos. O Regedit fornece uma interface gráfica para navegação e edição interativa. A ferramenta de linha de comando reg.exe é ideal para scripts e arquivos em lote. Os cmdlets do PowerShell (Get-ItemProperty, Set-ItemProperty, New-ItemProperty, Remove-ItemProperty) oferecem a abordagem mais flexível e programável. Para ambientes corporativos, as Preferências de Política de Grupo fornecem implantação centralizada e gerenciável de alterações no registro em computadores associados ao domínio. Independentemente do método, sempre crie um backup antes de modificar o registro e teste as alterações em um ambiente controlado primeiro.

Artigos Relacionados