Registro de Windows
Contexto e historia
-
Antes de Windows 95
- Configuración almacenada en archivos de texto (INI) distribuidos en varios lugares.
- Problemas: duplicación, incoherencias, dificultad de gestión centralizada.
-
Introducción del registro
- Windows 95 inaugura la base de registro (Registry): un almacén jerárquico centralizado.
- Objetivo: unificar la configuración del sistema y de las aplicaciones.
Por qué existe el registro
-
Centralización
- Sustituye los múltiples INI, CFG y .INF.
-
Jerarquización
- Estructura de árbol clave/valor, más estructurada que los archivos planos.
-
Rendimiento y atomicidad
- Lectura/escritura optimizada, soporte para transacciones parciales.
-
Seguridad
- ACL (permisos estilo NTFS) en cada clave del registro.
Estructura general
El registro está organizado en hives (colmenas). Cada hive corresponde a un gran
archivo almacenado en disco (bajo %SystemRoot%\System32\Config para las hives
de máquina, y en el perfil de usuario para HKCU).
| Hive | Archivo | Contenido principal |
|---|---|---|
HKEY_LOCAL_MACHINE (HKLM) | SYSTEM, SOFTWARE, etc. | Configuración de la máquina (todos los usuarios) |
HKEY_CURRENT_USER (HKCU) | %USERPROFILE%\NTUSER.DAT | Configuración del perfil actual |
HKEY_USERS | Todos los perfiles de usuario | Reúne el HKCU de cada usuario |
HKEY_CLASSES_ROOT (HKCR) | Fusión de HKLM\SOFTWARE\Classes y HKCU\Software\Classes | Asociaciones de archivos, COM |
HKEY_CURRENT_CONFIG | Enlace a la configuración de hardware activa | Parámetros de hardware dinámicos |
Claves, subclaves y valores
-
Clave: equivalente a una carpeta (contiene subclaves y valores).
-
Valor: par
(Nombre, Tipo, Dato).-
Tipos comunes:
REG_SZ(cadena),REG_DWORD(entero de 32 bits),REG_QWORD(entero de 64 bits),REG_MULTI_SZ(arreglo de cadenas),REG_BINARY(datos en bruto).
-
Registry Editor (regedit.exe)
-
Funcionalidades
- Navegación visual del árbol.
- Exportar/Importar
.reg. - Modificar ACL (clic derecho → Permisos).
-
Advertencias
- A menudo requiere privilegios de administrador.
- Una modificación incorrecta puede volver inestable Windows.
El provider Registry en PowerShell
PowerShell expone el registro como un provider tipo sistema de archivos:
- Raíces:
HKLM:yHKCU: - Posibilidad de navegar con
Set-Location,Get-ChildItem, etc.
Ejemplos prácticos con PowerShell
Pruebe estos ejemplos en su máquina virtual
Navegar en el registro
# Listar las hives de máquina
Get-ChildItem -Path Registry::HKLM
# Listar las claves bajo SOFTWARE
Get-ChildItem -Path HKLM:\SOFTWARE
Leer valores
# Valor de una clave
Get-ItemProperty -Path 'HKCU:\Control Panel\Desktop' -Name Wallpaper
# Leer todas las propiedades
Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Lsa'
Probar la existencia de una clave o un valor
# ¿Clave existente?
Test-Path -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion'
# ¿Valor existente?
(Get-ItemProperty -Path HKCU:\... -Name 'NomValeur' -ErrorAction SilentlyContinue) -ne $null
Crear una subclave y un valor
Reemplace Username por su nombre de usuario
# Crear la clave MyApp
New-Item -Path 'HKCU:\Software\Username\MyApp' -Force
# Agregar un valor de cadena
New-ItemProperty -Path 'HKCU:\Software\Username\MyApp' `
-Name 'MessageBienvenue' `
-Value 'Bienvenue dans MyApp!' `
-PropertyType String -Force
# Agregar un DWORD
New-ItemProperty -Path 'HKCU:\Software\Username\MyApp' `
-Name 'Enabled' `
-Value 1 `
-PropertyType DWord -Force
Modificar un valor existente
# Desactivar el inicio rápido (ejemplo de sistema)
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Power' `
-Name 'HiberbootEnabled' `
-Value 0
Eliminar una clave o un valor
Reemplace Username por su nombre de usuario
# Eliminar un valor
Remove-ItemProperty -Path 'HKCU:\Software\Username\MyApp' -Name 'MessageBienvenue'
# Eliminar la subclave completa
Remove-Item -Path 'HKCU:\Software\Username\MyApp' -Recurse -Force
Exportar e importar
Reemplace Username por su nombre de usuario
# Exportar una rama a .reg
reg export "HKCU\Software\Username\MyApp" C:\temp\myapp.reg /y
# Importar un .reg
reg import C:\temp\myapp.reg
Ejemplo avanzado: cambiar el fondo de pantalla
# Definir la ruta de la imagen
$wall = 'C:\Images\montagne.jpg'
# Modificar la clave
Set-ItemProperty -Path 'HKCU:\Control Panel\Desktop' `
-Name 'Wallpaper' `
-Value $wall
# Actualizar la visualización
Add-Type -AssemblyName user32
[User32]::SystemParametersInfo(0x0014, 0, $wall, 0x0002)
Seguridad y buenas prácticas
-
Hacer una copia de seguridad antes de modificar
reg export "HKLM\SOFTWARE" C:\backup\software-hive.reg /y -
Utilizar
-WhatIfy-ConfirmRemove-Item -Path 'HKCU:\Software\Test' -Recurse -WhatIf -
Preferir PowerShell a
reg.exepara la automatización -
Restringir los ACL
- Verificar/modificar mediante
Get-Acl/Set-Aclsi es necesario.
- Verificar/modificar mediante
Para recordar
- El registro es el núcleo de la configuración de Windows, centralizado y jerárquico.
- Sustituye los archivos INI: más robusto, seguro y eficiente.
- Cada hive corresponde a un contexto (máquina/usuario).
- PowerShell ofrece un provider nativo para navegar y modificar el registro en scripts.
- Siempre haga una copia de seguridad y pruebe antes de cualquier modificación en producción.