Registro de Windows

El registro de Windows es una base de datos jerárquica que almacena los ajustes de configuración y opciones en los sistemas operativos Microsoft Windows.

Una base de datos jerárquica central que se usa en Windows 98, Windows CE, Windows NT y Windows 2000 y sirve para almacenar información necesaria para configurar el sistema para uno o varios usuarios, aplicaciones y dispositivos de hardware.

El Registro contiene información que Windows consulta continuamente durante el funcionamiento, como perfiles para cada usuario, las aplicaciones instaladas en el equipo y los tipos de documentos que cada uno puede crear, la configuración de la hoja de propiedades para carpetas e iconos de aplicación, qué hardware existe en el sistema y los puertos que se usan.

El Registro reemplaza la mayoría de los archivos .ini basados en texto que se usan en los archivos de configuración de Windows 3.x y MS-DOS, como Autoexec.bat y Config.sys.

Aunque el Registro es común a varios sistemas operativos Windows, hay algunas diferencias entre ellos. Un subárbol del Registro es un grupo de claves, subclaves y valores en el Registro que tiene un conjunto de archivos auxiliares que contienen copias de seguridad de sus datos.

Los archivos auxiliares de todos los subárboles excepto HKEY_CURRENT_USER se encuentran en la carpeta %SystemRoot%\System32\Config de Windows NT 4.0, Windows 2000, Windows XP, Windows Server 2003 y Windows Vista. Los archivos auxiliares de HKEY_CURRENT_USER están en la carpeta %SystemRoot%\Profiles\Username.

Las extensiones de nombre de archivo de los archivos de estas carpetas indican el tipo de datos que contienen. Además, la ausencia de una extensión a veces puede indicar el tipo de datos que contienen.

Subárbol del RegistroArchivos auxiliares
HKEY_LOCAL_MACHINE\SAMSam, Sam.log, Sam.sav
HKEY_LOCAL_MACHINE\SecuritySecurity, Security.log, Security.sav
HKEY_LOCAL_MACHINE\SoftwareSoftware, Software.log, Software.sav
HKEY_LOCAL_MACHINE\SystemSystem, System.alt, System.log, System.sav
HKEY_CURRENT_CONFIGSystem, System.alt, System.log, System.sav, Ntuser.dat, Ntuser.dat.log
HKEY_USERS\DEFAULTDefault, Default.log, Default.sav

En Windows 98, los archivos del Registro se denominan User.dat y System.dat. En Windows Millennium Edition, los archivos del Registro se denominan Classes.dat, User.dat y System.dat.

 Nota

Las características de seguridad de Windows permiten a un administrador controlar el acceso a las claves del Registro.

La siguiente tabla muestra las teclas predefinidas utilizadas por el sistema. La longitud máxima de un nombre de clave es de 255 caracteres.Expandir tabla

Carpeta o clave predefinidaDescripción
HKEY_CURRENT_USERContiene la raíz de la información de configuración del usuario que ha iniciado sesión actualmente. Las carpetas, los colores de pantalla y la configuración de Panel de control del usuario se almacenan aquí. Esta información está asociada al perfil del usuario. Esta clave a veces se abrevia como HKCU.
HKEY_USERSContiene todos los perfiles de usuario cargados actualmente en el equipo. HKEY_CURRENT_USER es una subclave de HKEY_USERS. HKEY_USERS a veces se abrevia como HKU.
HKEY_LOCAL_MACHINEContiene información de configuración específica del equipo (para cualquier usuario). Esta clave a veces se abrevia como HKLM.
HKEY_CLASSES_ROOTEs una subclave de HKEY_LOCAL_MACHINE\Software. La información que se almacena aquí garantiza que se abra el programa correcto al abrir un archivo mediante el Explorador de Windows. Esta clave a veces se abrevia como HKCR. A partir de Windows 2000, esta información se almacena en las claves HKEY_LOCAL_MACHINE y HKEY_CURRENT_USER. La clave HKEY_LOCAL_MACHINE\Software\Classes contiene la configuración predeterminada que se puede aplicar a todos los usuarios del equipo local. La clave HKEY_CURRENT_USER\Software\Classes contiene la configuración que invalida la configuración predeterminada y se aplica solo al usuario interactivo. La clave HKEY_CLASSES_ROOT proporciona una vista del Registro que combina la información de estos dos orígenes. HKEY_CLASSES_ROOT también proporciona esta vista combinada para los programas que están diseñados para versiones anteriores de Windows. Para cambiar la configuración del usuario interactivo, se deben realizar cambios en HKEY_CURRENT_USER\Software\Classes en lugar de en HKEY_CLASSES_ROOT. Para cambiar la configuración predeterminada, los cambios deben realizarse en HKEY_LOCAL_MACHINE\Software\Classes. Si escribe claves en una clave en HKEY_CLASSES_ROOT, el sistema almacena la información en HKEY_LOCAL_MACHINE\Software\Classes. Si escribe valores en una clave en HKEY_CLASSES_ROOT y la clave ya existe en HKEY_CURRENT_USER\Software\Classes, el sistema almacenará la información allí en lugar de en HKEY_LOCAL_MACHINE\Software\Classes.
HKEY_CURRENT_CONFIGContiene información sobre el perfil de hardware que usa el equipo local al iniciar el sistema.

 Nota

El Registro en versiones de 64 bits de Windows XP, Windows Server 2003 y Windows Vista se divide en claves de 32 y 64 bits. Muchas de las claves de 32 bits tienen los mismos nombres que sus homólogos de 64 bits y viceversa. La versión predeterminada de 64 bits del Editor del Registro que se incluye con versiones de 64 bits de Windows XP, Windows Server 2003 y Windows Vista muestra las claves de 32 bits en el nodo HKEY_LOCAL_MACHINE\Software\WOW6432Node. Para obtener más información sobre cómo ver el Registro en versiones de 64 bits de Windows.

En la tabla siguiente se enumeran los tipos de datos que están definidos actualmente y que usa Windows. El tamaño máximo de un nombre de valor es el siguiente:

  • Windows Server 2003, Windows XP y Windows Vista: 16 383 caracteres
  • Windows 2000: 260 caracteres ANSI o 16 383 caracteres Unicode
  • Windows Millennium Edition/Windows 98/Windows 95: 255 caracteres

Los valores largos (más de 2048 bytes) deben almacenarse como archivos con los nombres de archivo almacenados en el Registro. Esto ayuda al registro a funcionar de forma eficaz. El tamaño máximo de un valor es el siguiente:

  • Windows NT 4.0/Windows 2000/Windows XP/Windows Server 2003/Windows Vista: memoria disponible
  • Windows Millennium Edition/Windows 98/Windows 95: 16 300 bytes

 Nota

Hay un límite de 64 000 para el tamaño total de todos los valores de una clave.Expandir tabla

NombreTipo de datosDescripción
Valor binarioREG_BINARYDatos binarios sin formato. La mayoría de la información del componente de hardware se almacena como datos binarios y se muestra en el Editor del Registro en formato hexadecimal.
Valor DWORDREG_DWORDDatos representados por un número de 4 bytes de longitud (un entero de 32 bits). Muchos parámetros para los controladores de dispositivo y los servicios son de este tipo y se muestran en el Editor del Registro en formato binario, hexadecimal o decimal. Los valores relacionados son DWORD_LITTLE_ENDIAN (el byte menos significativo está en la dirección más baja) y REG_DWORD_BIG_ENDIAN (el byte menos significativo está en la dirección más alta).
Valor de cadena expansibleREG_EXPAND_SZCadena de datos de longitud variable. Este tipo de datos incluye variables que se resuelven cuando un programa o servicio usa los datos.
Valor de cadena múltipleREG_MULTI_SZUna cadena múltiple. Suelen ser de este tipo los valores que contienen listas o varios valores en un formulario que los usuarios pueden leer. Las entradas se separan con espacios, comas u otras marcas.
Valor de cadenaREG_SZCadena de texto de longitud fija.
Valor binarioREG_RESOURCE_LISTUna serie de matrices anidadas diseñadas para almacenar una lista de recursos que usa un controlador de dispositivo de hardware o uno de los dispositivos físicos que controla. El sistema detecta y escribe estos datos en el árbol \ResourceMap y se muestran en el Editor del Registro en formato hexadecimal como un valor binario.
Valor binarioREG_RESOURCE_REQUIREMENTS_LISTUna serie de matrices anidadas que está diseñada para almacenar la lista de posibles recursos de hardware que puede usar el controlador o uno de los dispositivos físicos que controla. El sistema escribe un subconjunto de esta lista en el árbol \ResourceMap. El sistema detecta estos datos y se muestran en el Editor del Registro en formato hexadecimal como un valor binario.
Valor binarioREG_FULL_RESOURCE_DESCRIPTORUna serie de matrices anidadas diseñadas para almacenar una lista de recursos que usa un dispositivo de hardware físico. El sistema detecta y escribe estos datos en el árbol \HardwareDescription y se muestran en el Editor del Registro en formato hexadecimal como un valor binario.
NingunoREG_NONEDatos sin ningún tipo determinado. El sistema o las aplicaciones escriben estos datos en el Registro y se muestran en el Editor del Registro en formato hexadecimal como un valor binario.
VínculoREG_LINKCadena Unicode que nombra un vínculo simbólico.
Valor QWORDREG_QWORDDatos representados por un número que es un entero de 64 bits. Estos datos se muestran en el Editor del Registro como un valor binario y se introdujeron en Windows 2000.

Precauciones Registro de Windows

Como indicamos anteriormente, el registro es fundamental para el sistema operativo en sí y de corromperse o dañarse podemos tener serios problemas e incluso malograr todo el sistema. Se recomienda siempre tener mucho cuidado al momento de manejarlo. Cuando nuestro equipo funcione adecuadamente, debemos guardar copias de seguridad.

Hacer copia seguridad del Registro

Claves y valores

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 distinguir 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, 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.

Subárboles

El registro comprende varias secciones lógicas o subárboles​.​ 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.

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, 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)

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)

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.

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 solo 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.

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 solo 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.

Edición manual

El registro de Windows se puede editar manualmente mediante programas como regedit.exe y, en versiones más antiguas de Windows, regedt32.exe, aunque estas herramientas no muestran algunos de los metadatos del registro, como por ejemplo los últimos datos modificados.

También implementan soluciones alternativas en código, las cuales permiten renombrar las claves del registro, ya que las API subyacentes no admiten esta funcionalidad. Dado que cualquier descuido en los cambios podría causar daños irreversibles, Microsoft recomienda hacer una copia de seguridad del registro antes de editarlo.

Los cambios incorrectos hechos en el registro con el editor de registro pueden provocar problemas en Windows que abarcan a todo el sistema, y que pueden requerir la reinstalación de Windows para solucionarlos.

A veces es necesario editar el registro cuando se intentan soluciones alternativas a problemas específicos de Windows. Por ejemplo, los problemas surgidos al iniciar sesión en un dominio se pueden resolver editando el registro.

En Windows 3.x apareció una implementación sencilla de la herramienta de registro actual, llamada Editor de información de registro o Editor de registro. En esencia, se trataba de una base de datos de aplicaciones usadas para editar objetos OLE incrustados en los documentos. Los sistemas operativos Windows 9x incluían REGEDIT.EXE, el cual se podía usar en Windows y también en MS-DOS en modo real.

Windows NT introdujo los permisos para editar el registro. Windows NT 4.0 y Windows 2000 se distribuyeron con el programa REGEDIT.EXE de Windows 9x y con el programa REGEDT32.EXE de Windows NT 3.x. Había varias diferencias entre los dos editores de estas plataformas:

  • REGEDIT.EXE tenía a la izquierda una vista de árbol que comenzaba en Mi equipo y enumeraba todos los subárboles cargados. REGEDT32.EXE tenía una vista de árbol a la izquierda, pero cada subárbol tenía su propia ventana, por lo que el árbol solo mostraba las claves.
  • REGEDIT.EXE representaba los tres componentes de un valor (nombre, tipo y datos) en columnas independientes de una tabla. REGEDT32.EXE representaba dichos componentes en forma de lista de cadenas.
  • REGEDIT.EXE admitía hacer clic con el botón secundario del ratón sobre las entradas de una vista de árbol para ajustar las propiedades y otras configuraciones. REGEDT32.EXE requería que todas las acciones se realizaran desde la barra de menús superior.
  • REGEDIT.EXE admitía la búsqueda por todo el registro de nombres, valores o datos de las claves, mientras que REGEDT32.EXE solo admitía la búsqueda por nombre de la clave en un único subárbol cada vez.
  • Las versiones anteriores de REGEDIT.EXE no eran compatibles con los permisos de edición. Por ello, en las versiones anteriores solo REGEDT32.EXE podía acceder a toda la funcionalidad de un registro NT. REGEDIT.EXE en Windows XP y versiones superiores es compatible con los permisos de edición.
  • REGEDIT.EXE solo admitía valores de cadena (REG_SZ), binarios (REG_BINARY) y DWORD (REG_DWORD). REGEDT32.EXE admitía estos valores, además de la cadena expandible (REG_EXPAND_SZ) y la cadena múltiple (REG_MULTI_SZ). Al intentar editar tipos de clave no compatibles con REGEDIT.EXE en Windows 2000 o Windows NT 4.0 se producía su conversión irreversible en un tipo compatible.​

Windows XP fue el primer sistema que integró los dos programas en uno solo, adoptando la interfaz del antiguo REGEDIT.EXE y añadiendo la funcionalidad de REGEDT32.EXE. Las diferencias enumeradas anteriormente no son aplicables a Windows XP ni a los sistemas posteriores; REGEDIT.EXE es el editor mejorado y REGEDT32.EXE está en desuso. En Windows XP y superiores, el Editor de registro también admite varias instancias cuando se especifica el modificador -m. El Editor de registro permite que los usuarios ejecuten las siguientes funciones:

  • Crear, manipular, renombrar y borrar claves, valores y datos de valores del registro.
  • Importar y exportar archivos.REG, exportar datos en formato de subárbol binario
  • Cargar, manipular y descargar archivos del registro con formato de subárbol (únicamente en sistemas basados en Windows NT)
  • Configurar permisos basados en ACL (únicamente en sistemas basados en Windows NT)
  • Marcar como favoritas claves del registro seleccionadas por el usuario.
  • Encontrar determinadas cadenas en nombres de clave, nombres de valor y datos de valor.
  • Editar remotamente el registro desde otro equipo que esté en red.

También es posible editar el registro en Linux usando el editor de código abierto Offline NT Password & Registry Editor para editar los archivos.

Archivos .REG

Uso de un archivo de entradas de Registro (.reg)

Cree un archivo de entradas de Registro (.reg) que contenga los cambios del Registro y, a continuación, ejecute el archivo .reg en el equipo donde desea realizar los cambios. Puede ejecutar el archivo .reg manualmente o mediante un script de inicio de sesión. 

Sintaxis de los archivos .Reg

Un archivo .reg tiene la sintaxis siguiente:

versiónEditorRegistro
línea en blanco
[RegistryPath1]

DataItemName1"="DataType1:DataValue1
DataItemName2"="DataType2:DataValue2
línea en blanco
[RegistryPath2]

DataItemName3"="DataType3:DataValue3

donde:

RegistryEditorVersion es Editor del Registro de Windows versión 5.00 para Windows 2000, Windows XP y Windows Server 2003 o REGEDIT4 para Windows 98 y Windows NT 4.0. El encabezado REGEDIT4 también funciona en equipos basados en Windows 2000, Windows XP o Windows Server 2003.

Línea en blanco es una línea en blanco. Esto identifica el inicio de una nueva ruta del Registro. Cada clave o subclave es una nueva ruta del Registro. Si tiene varias claves en el archivo .reg, las líneas en blanco pueden ayudarle a examinar y solucionar problemas del contenido.

RegistryPathx es la ruta de la subclave que contiene el primer valor que va a importar. Agregue la ruta entre corchetes y separe cada nivel de la jerarquía con una barra diagonal inversa. Por ejemplo:

[HKEY_LOCAL_ MACHINE\SOFTWARE\Policies\Microsoft\Windows\System] Un archivo .reg puede contener varias rutas de Registro. Si la parte inferior de la jerarquía en la instrucción de ruta no existe en el Registro, se crea una nueva subclave. El contenido de los archivos de Registro se envía al Registro en el orden en que se especifica. Por consiguiente, si desea crear una nueva subclave con otra por debajo de ella, debe escribir las líneas en el orden correcto.

DataItemNamex es el nombre del elemento de datos que desea importar. Si un dato del archivo no existe en el Registro, el archivo .reg lo agrega (con el valor del dato). Si un dato existe, el valor del archivo .reg sobrescribe el existente. Las comillas contienen el nombre del dato. Un signo igual (=) sigue inmediatamente al nombre del dato.

DataTypex es el tipo de datos del valor del Registro y va precedido del signo igual. Para todos los tipos de datos distintos de REG_SZ (un valor de cadena), un signo de dos puntos sigue inmediatamente al tipo de datos. Si el tipo de datos es REG_SZ, no incluya el valor de tipo de datos ni los dos puntos. En este caso, Regedit.exe supone REG_SZ para el tipo de datos. En la tabla siguiente se muestran los tipos de datos del Registro típicos:

Tipo de datosTipo de datos en .reg
REG_BINARYhexadecimal
REG_DWORDdword
REG_EXPAND_SZhexadecimal (2)
REG_MULTI_SZhexadecimal (7)

DataValuex va inmediatamente precedido por dos puntos (o por el signo igual con REG_SZ) y debe estar en el formato adecuado (por ejemplo, cadena o hexadecimal). Utilice el formato hexadecimal para los datos binarios.

Nota Puede escribir varias líneas de datos para la misma ruta del Registro.

Nota El archivo del Registro debe contener una línea en blanco al final del archivo.

Agregar subclaves del Registro o agregar y cambiar valores del Registro

Para agregar una subclave o agregar o cambiar un valor del Registro, realice los cambios adecuados en el Registro y, a continuación, exporte la subclave o subclaves adecuadas. Las subclaves del Registro exportadas se guardan automáticamente como archivos .reg. Para realizar cambios en el Registro y exportarlos a un archivo .reg, siga estos pasos:

  1. Haga clic en Inicio y en Ejecutar, en el cuadro Abrir, escriba regedit y luego haga clic en Aceptar.
  2. Busque la subclave que contenga el elemento o elementos del Registro que desee cambiar y haga clic en ella.
  3. Haga clic en Archivo y, después, en Exportar.

    De este modo se hace una copia de seguridad de la subclave antes de realizar cualquier cambio. Puede importar de nuevo este archivo en el Registro después si sus cambios provocan algún problema.
  4. En el cuadro Nombre de archivo, escriba el nombre deseado para guardar el archivo .reg con los elementos del Registro originales y luego haga clic en Guardar.

    Nota Use un nombre de archivo que le evoque el contenido como, por ejemplo, una referencia al nombre de la subclave.
  5. En el panel derecho, agregue o modifique los elementos del Registro que desee.
  6. Repita los pasos 3 y 4 para exportar de nuevo la subclave, pero use un nombre de archivo diferente para el archivo .reg. Puede utilizar este archivo .reg para realizar cambios en el Registro de otro equipo.
  7. Pruebe sus cambios en el equipo local. Si ocasionan algún problema, haga doble clic en el archivo que contenga la copia de seguridad de los datos originales del Registro para devolverlo a su estado original. Si los cambios surten el efecto esperado, puede distribuir el archivo .reg creado en el paso 6 a otros equipos.

Eliminación de las claves y valores del Registro

Para eliminar una clave del Registro con un archivo .reg, coloque un guión (-) delante de RegistryPath en el archivo .reg. Por ejemplo, para eliminar la subclave Test de la clave del Registro siguiente:

HKEY_LOCAL_MACHINE\Software ponga un guión delante de la clave del Registro siguiente en el archivo .reg:

HKEY_LOCAL_MACHINE\Software\Test El ejemplo siguiente tiene un archivo .reg con el que puede realizar esta tarea.

[-HKEY_LOCAL_MACHINE\Software\Test] Para eliminar un valor del Registro con un archivo .reg, escriba un guión (-) después del signo igual a continuación de DataItemName en el archivo .reg. Por ejemplo, para eliminar el valor del Registro TestValue de la clave del Registro siguiente:

HKEY_LOCAL_MACHINE\Software\Test ponga un guión después de «TestValue=» en el archivo .reg. El ejemplo siguiente tiene un archivo .reg con el que puede realizar esta tarea.

HKEY_LOCAL_MACHINE\Software\Test
«TestValue»=- Para crear el archivo .reg, utilice Regedit.exe para exportar la clave del Registro que desee eliminar y, a continuación, utilice el Bloc de notas para editar el archivo .reg e insertar el guión.

Cambiar el nombre de las claves y valores del Registro

Para cambiar el nombre de una clave o valor, elimine la clave o valor, y, a continuación, cree una nueva clave o valor con el nuevo nombre.

Distribuir los cambios del Registro

Puede enviar un archivo .reg a los usuarios en un mensaje de correo electrónico, poner un archivo .reg en un recurso compartido de red y dirigir a él a los usuarios para que lo ejecuten, o agregar un comando a las secuencias de comandos de inicio de sesión de los usuarios para importar automáticamente el archivo .reg cuando inicien sesión. Cuando los usuarios ejecuten el archivo .reg, reciben los mensajes siguientes:

Editor del Registro
¿Está seguro de que quiere agregar la información de la ruta de acceso del archivo .reg al Registro?

Si el usuario hace clic en , recibirá el siguiente mensaje:

Editor del Registro
La información de la ruta del archivo .reg se ha escrito correctamente en el Registro.

Regedit.exe admite un modificador de la línea de comandos /s para no mostrar estos mensajes. Por ejemplo, para ejecutar sin mensajes el archivo .reg (con el modificador /s) desde un archivo por lotes de scripts de inicio de sesión, use la sintaxis siguiente:

regedit.exe /s ruta de acceso del archivo .reg

También puede utilizar Directiva de grupo o Directiva del sistema para distribuir los cambios del Registro en la red.