Definición
El
Registro de Windows, es una base de datos que almacena las
configuraciones y opciones del sistema operativo Microsoft Windows.
Contiene
información y configuraciones de todo el hardware, software,
usuarios, y preferencias del PC. Si un usuario hace cambios en las
configuraciones del “Panel de control”, en las asociaciones de
ficheros, en las políticas del sistema o en el software instalado,
los cambios son reflejados y almacenados en el registro.
El
Registro se almacena en varios ficheros que, dependiendo de la
versión de Windows, se ubican en diferentes lugares dentro del
sistema local, excepto NTuser (o archivo de usuario), que puede ser
ubicado en otra máquina para permitir perfiles móviles.
Estructura
El
registro contiene dos elementos básicos: claves y valores.
Las
claves del registro son similares a carpetas: además de los valores,
cada clave puede contener subclaves, que a su vez pueden contener más
subclaves, y así sucesivamente. Las claves están referenciadas con
una sintaxis parecida a los nombres de las rutas de Windows, y usan
barras diagonales inversas para indicar los distintos niveles
jerárquicos. Cada subclave tiene obligatoriamente un nombre: una
cadena que no puede contener barras diagonales inversas y en la que
no se distingue entre mayúsculas y minúsculas.
Únicamente
se puede acceder a la jerarquía de las claves del registro desde un
identificador de clave raíz conocido (que es anónimo, pero cuyo
valor efectivo es un identificador numérico constante) asignado al
contenido de una clave de registro precargada por el núcleo desde un
"subárbol" almacenado, o asignado al contenido de una
subclave dentro de otra clave raíz, o también asignado a un
servicio registrado o DLL que proporciona acceso a los valores y
subclaves contenidos en éste.
Ejemplo:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows se refiere a la
subclave "Windows" de la subclave "Microsoft" de
la subclave "Software" de la clave raíz
HKEY_LOCAL_MACHINE.
Hay
siete claves raíz predefinidas, las cuales tradicionalmente se
nombran según su identificador constante definido en la API de
Win32, **por sus abreviaturas correspondientes (dependiendo de las
aplicaciones):
-
HKEY_LOCAL_MACHINE o bien HKLM
-
HKEY_CURRENT_CONFIG o bien HKCC (únicamente en Windows 9x/Me y en las versiones basadas en NT de Windows)
-
HKEY_CLASSES_ROOT o bien HKCR
-
HKEY_CURRENT_USER o bien HKCU
-
HKEY_USERS o bien HKU
-
HKEY_PERFORMANCE_DATA (únicamente en las versiones de Windows basadas en NT, pero invisible para el editor del registro)
-
HKEY_DYN_DATA (únicamente en Windows 9x/Me, y visible en el editor de registro de Windows)
Al
igual que otros archivos y servicios de Windows, todas las claves de
registro pueden restringirse mediante listas
de control de acceso (ACL), dependiendo de los privilegios del
usuario, los tokens de seguridad obtenidos por las aplicaciones, o
las directivas de seguridad aplicadas por el sistema (estas
restricciones pueden ser definidas por el mismo sistema y
configuradas por los administradores locales del sistema o por
administradores de dominio). Los diferentes usuarios, programas,
servicios y sistemas remotos podrán ver únicamente una parte de la
jerarquía o de las distintas jerarquías de las mismas claves raíz.
Los
valores del registro son pares de nombres y datos almacenados dentro
de las claves. Los valores del registro se referencian separados de
las claves de registro. Cada valor de registro almacenado en una
clave de registro posee un nombre único, sin distinguie entre
mayúsculas y minúsculas. Las funciones API
de Windows que consultan y manipulan los valores del registro
toman nombres de valor independientes de la ruta de la clave o el
indicador que identifica la clave principal. Los valores del registro
pueden contener barras diagonales inversas en el nombre, pero esto
los hace difíciles de distinguir de sus rutas de clave cuando se
utilizan algunas funciones API del registro de Windows (cuyo uso está
obsoleto en Win32).
La
terminología puede inducir a error, ya que cada clave de registro es
similar a un vector
asociativo, en el que la terminología estándar denomina "clave"
a la parte del nombre de cada valor de registro. Los términos son un
vestigio del registro de 16 bits de Windows 3, en el cual las claves
de registro no podían contener pares de nombres/datos, sino que
contenían únicamente un valor sin nombre (que tenía que ser una
cadena). En este sentido, todo el registro era como un único vector
asociativo en el que las claves de registro (tanto en el sentido de
registro como en el del diccionario) formaban una jerarquía, y los
valores del registro eran todos cadenas. Cuando se creó el registro
de 32 bits, también se creó la capacidad adicional de crear
múltiples valores con nombre por clave y, de algún modo, se
distorsionó el significado de los nombres. Para mantener la
compatibilidad con el comportamiento anterior, todas las claves de
registro pueden tener un valor "por defecto", cuyo nombre
es la cadena vacía.
Cada
valor puede almacenar datos arbitrarios de longitud y codificado
variables, pero asociados a un tipo simbólico de datos (definido
como una constante numérica) que expresa cómo analizar estos datos.
Los tipos estándar son:
Lista
de tipos de valores estándar del registro
Nombre
|
Nombre de tipo simbólico de datos
|
Significado y codificación de los datos
almacenados en el valor de registro
|
---|---|---|
0
|
REG_NONE
|
Datos sin ningún tipo (en todo caso, el valor
almacenado)
|
1
|
REG_SZ
|
Valor
de cadena, normalmente almacenado y mostrado en UTF-16LE
(cuando se utiliza la versión Unicode de las funciones API de
Win32), que generalmente termina con un carácter nulo
|
2
|
REG_EXPAND_SZ
|
Valor de cadena "expandible" que
puede contener variables de entorno, normalmente almacenado y
mostrado en UTF-16LE, que generalmente termina con un carácter
nulo
|
3
|
REG_BINARY
|
Datos binarios (cualquier dato arbitrario)
|
4
|
REG_DWORD / REG_DWORD_LITTLE_ENDIAN
|
Valor DWORD,
número
entero no negativo de 32 bits (números entre el 0 y el
4.294.967.295 [232 – 1]) (little-endian)
|
5
|
REG_DWORD_BIG_ENDIAN
|
Valor DWORD, número entero no negativo de 32
bits (números entre el 0 y el 4.294.967.295 [232 – 1])
(big-endian)
|
6
|
REG_LINK
|
Enlace simbólico (UNICODE) a otra clave de
registro, especificando una clave raíz y la ruta a la clave
objetivo
|
7
|
REG_MULTI_SZ
|
Valor de cadena múltiple, que generalmente es
una lista ordenada de cadenas no vacías, normalmente almacenadas
y mostradas en UTF-16LE, cada una de ellas terminada en un
carácter nulo, y la lista normalmente también termina con un
carácter nulo.
|
8
|
REG_RESOURCE_LIST
|
Lista de recursos (usada por la enumeración y
configuración del hardware Plug-n-Play)
|
9
|
REG_FULL_RESOURCE_DESCRIPTOR
|
Descriptor de recursos (usado por la
enumeración y configuración del hardware Plug-n-Play)
|
10
|
REG_RESOURCE_REQUIREMENTS_LIST
|
Lista de requisitos de recursos (usada por la
enumeración y configuración del hardware Plug-n-Play)
|
11
|
REG_QWORD / REG_QWORD_LITTLE_ENDIAN
|
Valor QWORD,
número entero de 64 bits (puede ser big-endian o little-endian, o
sin especificar). (Introducido en Windows
XP)
|
Subárboles
El
registro comprende varias secciones lógicas o «subárboles» (la
palabra inglesa para subárbol, «hive», es un chiste interno). Los
subárboles normalmente se nombran según las definiciones de sus API
de Windows, las cuales empiezan siempre por «HKEY». Con
frecuencia se abrevian en un nombre de tres o cuatro letras que
empieza con «HK» (p. ej., HKCU y ). Técnicamente, se trata de
indicadores predefinidos (con valores constantes predefinidos) para
claves específicas que se mantienen en la memoria o se almacenan en
archivos de subárbol almacenados en el sistema de archivos local y
cargados por el núcleo del sistema en el tiempo de arranque, y a
continuación se comparten (con varios derechos de acceso) entre
todos los procesos que se están ejecutando en el sistema local, o
cargados y asignados en todos los procesos iniciados en una sesión
de usuario cuando el usuario accede al sistema. Los nodos
HKEY_LOCAL_MACHINE (datos de configuración local específicos del
equipo) y HKEY_CURRENT_USER (datos de configuración específicos del
usuario) tienen una estructura similar entre sí; las aplicaciones
del usuario normalmente buscan su configuración buscándolos primero
en «HKEY_CURRENT_USER\Software\Vendor's name\Application's
name\Version\Setting name», y si no se encuentra la configuración,
miran en la misma ubicación, en la clave HKEY_LOCAL_MACHINE
[necesita cita]. Sin embargo, se puede aplicar lo opuesto en
configuraciones de directivas
aplicadas por el administrador, en las que el HKLM puede estar por
encima del HKCU. El programa del logotipo
de Windows tiene requisitos específicos sobre dónde se pueden
almacenar los distintos tipos de datos de usuario para que se siga el
principio del privilegio mínimo, de forma que no se necesite acceso
a nivel de administrador para usar una aplicación.
HKEY_LOCAL_MACHINE (HKLM)
HKEY_LOCAL_MACHINE,
abreviado como HKLM, almacena configuraciones específicas del equipo
local.
Las claves ubicadas como HKLM realmente no se
almacena en el disco, sino que el núcleo del sistema la mantiene en
la memoria para asignar allí las demás subclaves. Las aplicaciones
no pueden crear subclaves adicionales. En las versiones
NT de Windows, esta clave contiene cuatro subclaves: «SAM»,
«SECURITY», «SYSTEM» y «SOFTWARE», las cuales se cargan en el
tiempo de arranque en sus respectivos archivos ubicados en la
carpeta %SystemRoot%\System32\config. Hay una quinta subclave,
«HARDWARE», que es volátil y se crea dinámicamente y, como tal,
no se almacena en un archivo (muestra una vista de todos los
dispositivos Plug-and-Play detectados en ese momento). En Windows
Vista y versiones superiores, el núcleo asigna una sexta subclave en
la memoria y se llena con datos de la configuración de arranque
(BCD).
-
La clave «HKLM\SAM» normalmente aparece vacía para la mayoría de los usuarios (a no ser que los administradores del sistema local o los administradores de dominios que administran el sistema local les hayan concedido acceso). Se utiliza para referenciar todas las bases de datos "administrador de cuentas de seguridad" (SAM) para todos los dominios en los cuales el sistema local ha sido autorizado o configurado administrativamente (incluyendo el dominio local del sistema en ejecución, cuya base de datos SAM está almacenada en una subclave llamada también «SAM»; se crearán otras subclaves según se necesiten, una por cada dominio adicional). Cada base de datos SAM contiene todas las cuentas integradas (principalmente alias de grupo) y cuentas configuradas (usuarios, grupos y sus alias, incluyendo cuentas invitadas y cuentas de administrador), creadas y configuradas en su respectivo dominio, ya que cada cuenta en ese dominio contiene el nombre de usuario que se puede utilizar para iniciar sesión en ese dominio, el identificador interno y exclusivo del usuario en el dominio, una función hash criptográfica de la contraseña de cada usuario para cada protocolo de autenticación habilitado, la ubicación del almacenamiento de su subárbol de registro de usuario, varios indicadores de estado (por ejemplo si la cuenta se puede enumerar y hacer visible en la ventana emergente de inicio de sesión), y la lista de dominios (incluido el dominio local) en el que se configuró la cuenta.
-
La clave «HKLM\SECURITY» generalmente aparece vacía para la mayoría de los usuarios (excepto cuando un usuario con privilegios de administrador les concede acceso) y está vinculada a la base de datos de seguridad del dominio en el que ha iniciado sesión el usuario (si el usuario ha iniciado sesión en el dominio del sistema local, esta clave estará vinculada al subárbol de registro almacenado en el equipo local y gestionado por administradores locales del sistema o por la cuenta "Sistema" integrada y los instaladores de Windows). El núcleo accederá a ella para leer y aplicar la directiva de seguridad que sea de aplicación al usuario actual y a todas las aplicaciones y operaciones ejecutadas por este usuario. También contiene una subclave "SAM", vinculada dinámicamente a la base de datos SAM del dominio en el cual el usuario actual ha iniciado sesión.
-
Normalmente, la clave «HKLM\SYSTEM» únicamente es editable por usuarios con privilegios de administrador en el sistema local. Contiene información sobre el programa de instalación del sistema de Windows, datos para el generador seguro de números aleatorios (RNG), la lista de los dispositivos montados actualmente que contienen un sistema de archivos, varios "HKLM\SYSTEM\Control Sets" numerados que contienen configuraciones alternativas de los servicios y controladores del hardware del sistema que está en funcionamiento en el sistema local (incluyendo el que está en uso y una copia de seguridad), una subclave "HKLM\SYSTEM\Select" que contiene el estado de este conjunto de controles, y un "HKLM\SYSTEM\CurrentControlSet" el cual, durante el tiempo de arranque, se vincula dinámicamente al conjunto de controles usado en esos momentos en el sistema local. Cada conjunto de controles configurado contiene:
-
Una subclave "Enum" que enumera todos los dispositivos Plug-and-Play conocidos y los asocia a los controladores de sistema instalados (y almacena las configuraciones específicas de cada dispositivo de dichos controladores).
-
Una subclave "Services" en la que se enumeran todos los controladores de sistema instalados (sin configuración específica para dispositivos y con una enumeración de los dispositivos para los cuales se ha creado una instancia de los mismos) y todos los programas que funcionan como servicios (cómo y cuándo se pueden iniciar automáticamente).
-
Una subclave "Control", la cual organiza los diversos controladores de hardware y programas que están funcionando como servicios, y la configuración del resto del sistema.
-
Una subclave "Hardware Profiles", que enumera los diversos perfiles que se han optimizado (cada uno de ellos con la configuración de "sistema" o "software" usada para modificar el perfil predeterminado en servicios y controladores del sistema o en las aplicaciones), así como la clave "Hardware Profiles\Current", que se vincula dinámicamente a uno de esos perfiles.
-
La subclave "HKLM\SOFTWARE" contiene ajustes de software y de Windows (en el perfil predeterminado de hardware). Resulta modificada principalmente por los instaladores del sistema y de las aplicaciones. Se ordena por vendedor de software (con una subclave para cada uno), pero también contiene una subclave "Windows" para algunas configuraciones de la interfaz de usuario de Windows, una subclave "Classes" que contiene todas las asociaciones registradas de extensiones de archivo, tipos de MIME, Id. de clases de objetos e Id. de interfaces (para OLE, COM/DCOM y ActiveX), para las aplicaciones o DLL instalados que probablemente manejen estos tipos en el equipo local (sin embargo, dichas asociaciones son configurables para cada usuario, ver más adelante), y una subclave "Policies" (también ordenada por vendedor) para aplicar las directivas de uso general en aplicaciones y servicios del sistema (incluyendo el almacén central de certificados usado para autentificar, autorizar o desautorizar a sistemas y servicios remotos que funcionan desde fuera del dominio de la red local).
-
-
La clave "HKLM\SOFTWARE\Wow6432Node" se usa con aplicaciones de 32 bits en los SO Windows de 64 bits y, aunque es independiente, es equivalente a "HKLM\SOFTWARE". En aplicaciones de 32 bits, WoW64 presenta de forma transparente la ruta de la clave como HKLM\SOFTWARE (similar a la forma en que las aplicaciones de 32 bits ven %SystemRoot%\Syswow64 como %SystemRoot%\System32)
Hardware | CPI gestión avanzada de energía |
Description | Información del microprocesador |
DeviceMap | Información del ratón, teclado, puertos. |
SAM | Configuración de seguridad, está protegida. |
Security | Configuración de seguridad, está protegida. Se utiliza cuando estamos en un dominio. |
Software | Información de programas instalados, fecha, versión, licencia, colores Classes es HKCR. |
System | Información sobre perfiles de Hardware, controladores, unidades de disco. |
HKEY_CLASSES_ROOT (HKCR)
HKEY_CLASSES_ROOT,
abreviado como HKCR, contiene información sobre aplicaciones
registradas, como asociaciones de archivos e Id. de clase de objetos
OLE,
ligándolos a las aplicaciones utilizadas para identificar estos
elementos. En Windows
2000 y versiones superiores, HKCR es una compilación de
HKCU\Software\Classes basada en el usuario y de HKLM\Software\Classes
basada en el equipo. Si un valor dado existe en las dos subclaves
anteriores, la contenida en HKCU\Software\Classes prevalece. El
diseño permite el registro de objetos COM específico del equipo o
del usuario. El subárbol de clases específico del usuario, a
diferencia del subárbol HKCU, no forma parte del perfil de usuario
móvil.
.html | Acciones a tomar con archivos de extension .html |
.htmlfile | Acciones a tomar con los tipos de archivos htmlfile (Un tipo de archivo puede estar asociado a varias extensiones) |
Directory | Acciones a tomar con directorios (contienen otros directorios o carpetas en su interior) |
Folder | Acciones a tomar con carpetas |
Drive | Acciones a tomar con unidades |
CLSID | Registro de todas las carpetas CLSID o identificadores de clase del sistema. |
HKEY_USERS (HKU)
HKEY_USERS, abreviado como HKU, contiene subclaves
correspondientes a las claves HKEY_CURRENT_USER de cada perfil de
usuario cargado activamente en el equipo, aunque normalmente sólo se
cargan los subárboles de usuario correspondientes a los usuarios con
sesión iniciada en esos momentos.
HKEY_CURRENT_USER (HKCU)
HKEY_CURRENT_USER,
abreviado como HKCU, almacena configuraciones específicas del
usuario con sesión iniciada en esos momentos. La clave
HKEY_CURRENT_USER es un enlace a la subclave de HKEY_USERS
correspondiente al usuario; se puede acceder a la misma información
en ambas ubicaciones. En los sistemas NT de Windows la configuración
de cada usuario se almacena en sus propios archivos, llamados
NTUSER.DAT y USRCLASS.DAT dentro de su subcarpeta Documents and
Settings (o en su subcarpeta Usuarios en Windows Vista y versiones
superiores). Las configuraciones contenidas en este subárbol siguen
de equipo en equipo a los usuarios con perfil móvil.
AppEvents | Sonidos |
Console | Configuración de la consola de cmd. |
Control Panel | Configuración del Panel de control |
Enviroment | Variables de entorno agregadas por el usuario. |
Software\Microsoft\Windows\CurrentVersion | Clave importantísima porque aquí está la configuración de muchos aspectos de Windows. |
HKEY_PERFORMANCE_DATA
Esta clave proporciona información del tiempo de
ejecución mediante datos de rendimiento proporcionados por el propio
núcleo NT o por controladores del sistema, programas y servicios en
funcionamiento que proporcionen datos de rendimiento. Esta clave no
se almacena en ningún subárbol y no aparece en el Editor de
registro, pero es visible a través de las funciones de registro en
el API de Windows, en una vista simplificada a través de la pestaña
Rendimiento del Administrador de tareas (únicamente para algunos
datos de rendimiento del sistema local) o a través de paneles de
control más avanzados (como el Monitor de rendimientos o el
Analizador de rendimientos, los cuales permiten recoger y registrar
esta información, incluyendo la de sistemas remotos).
HKEY_DYN_DATA
Esta clave se usa sólo en Windows 95, Windows 98 y Windows Me.
Contiene información sobre dispositivos de hardware, incluyendo
estadísticas de rendimiento de Plug and Play y de red. La
información contenida en este subárbol tampoco se almacena en el
disco duro. La información sobre Plug and Play se recoge y configura
en el inicio, y se almacena en la memoria.lml.
Copias de seguridad y recuperación
A lo largo de los años, las distintas ediciones
de Windows han utilizado diversos métodos para hacer copias de
seguridad y restaurar el registro, algunas de las cuales están
obsoletas hoy en día:
-
Restaurar sistema puede hacer copia de seguridad del registro y restaurarlo, siempre y cuando se pueda arrancar Windows, o desde el Entorno de recuperación de Windows arrancando con Windows Vista.
-
NTBackup puede hacer copia de seguridad del registro como parte del Estado del sistema y restaurarla. Recuperación automática del sistema también puede restaurar el registro en Windows XP.
-
En sistemas basados en Windows NT, la opción Última configuración válida conocida en el menú de inicio vuelve a enlazar la clave HKLM\SYSTEM\CurrentControlSet, la cual almacena información sobre controladores de hardware y de dispositivos.
-
Windows 98 y Windows Me incluyen herramientas de comprobación del registro de línea de comandos (Scanreg.exe) y GUI (Scanregw.exe) para comprobar y arreglar la integridad del registro, crear por defecto hasta cinco copias automáticas de forma regular y restaurarlas manualmente o cuando se detecten daños. La herramienta de comprobación del registro hace por defecto una copia de seguridad del registro en %Windir%\Sysbckup Scanreg.exe también puede ejecutarse desde MS-DOS.
-
El CD-ROM de Windows 95 incluía una Utilidad de recuperación de emergencia (ERU.exe) y una Herramienta de copia de seguridad de configuración (Cfgback.exe) para hacer copia de seguridad del registro y restaurarlo. Adicionalmente, Windows 95 hace copia de seguridad de los archivos system.da0 y user.da0 en cada arranque correcto.
1 comentario:
Que grande Agustín!! Parece muy interesante el blog, voy a seguir leyendo.
Publicar un comentario