El Registro de Windows es una base de datos jerárquica que almacena configuraciones de bajo nivel para el sistema operativo Microsoft Windows y para las aplicaciones que optan por usarlo. El núcleo , los controladores de dispositivos , los servicios , el Administrador de cuentas de seguridad y las interfaces de usuario pueden usar el Registro. Este también permite acceder a contadores para analizar el rendimiento del sistema.
En otras palabras, el registro o Registro de Windows contiene información, configuraciones, opciones y otros valores para los programas y el hardware instalados en todas las versiones de los sistemas operativos Microsoft Windows. Por ejemplo, cuando se instala un programa, se agrega al Registro de Windows una nueva subclave que contiene configuraciones como la ubicación del programa, su versión y cómo iniciarlo.
Cuando se introdujo con Windows 3.1 , el Registro de Windows almacenaba principalmente información de configuración para componentes basados en COM . Windows 95 y Windows NT extendieron su uso para racionalizar y centralizar la información en la profusión de archivos INI , que contenían las configuraciones para programas individuales y se almacenaban en varias ubicaciones. [ 1 ] [ 2 ] No es un requisito que las aplicaciones de Windows utilicen el Registro de Windows. Por ejemplo, las aplicaciones de .NET Framework utilizan archivos XML para la configuración, mientras que las aplicaciones portátiles suelen guardar sus archivos de configuración con sus ejecutables .
Razón fundamental
Antes del Registro de Windows, los archivos .INI almacenaban la configuración de cada programa como un archivo de texto o binario , a menudo ubicado en una ubicación compartida que no proporcionaba configuraciones específicas para cada usuario en un entorno multiusuario. En cambio, el Registro de Windows almacena todas las configuraciones de las aplicaciones en un repositorio lógico (aunque también en varios archivos independientes) y en un formato estandarizado. Según Microsoft , esto ofrece varias ventajas sobre los archivos .INI. [ 2 ] [ 3 ] Dado que el análisis de archivos se realiza de forma mucho más eficiente con un formato binario, se puede leer o escribir en él más rápidamente que en un archivo INI de texto. Además, se pueden almacenar datos fuertemente tipados en el registro, a diferencia de la información de texto almacenada en los archivos .INI. Esto resulta beneficioso al editar claves manualmente con regedit.exe , el Editor del Registro de Windows integrado. Debido a que la configuración del registro basada en el usuario se carga desde una ruta específica del usuario en lugar de desde una ubicación del sistema de solo lectura, el registro permite que varios usuarios compartan la misma máquina y también permite que los programas funcionen para usuarios con menos privilegios. La copia de seguridad y la restauración también se simplifican, ya que se puede acceder al registro a través de una conexión de red para la administración/soporte remoto, incluso desde scripts, utilizando el conjunto estándar de API , siempre que el servicio de Registro remoto esté en funcionamiento y las reglas del firewall lo permitan.
Dado que el registro es una base de datos, ofrece una mayor integridad del sistema con características como las actualizaciones atómicas . Si dos procesos intentan actualizar el mismo valor del registro simultáneamente, el cambio de un proceso precederá al del otro, manteniendo así la coherencia general de los datos. En el caso de los archivos .INI, estas condiciones de carrera pueden generar datos inconsistentes que no coinciden con ninguna de las actualizaciones intentadas. Windows Vista y sistemas operativos posteriores proporcionan actualizaciones transaccionales del registro mediante el Administrador de transacciones del kernel , extendiendo las garantías de atomicidad a múltiples cambios de clave o valor con la semántica tradicional de confirmación-aborto. (Cabe destacar que NTFS también ofrece esta compatibilidad para el sistema de archivos, por lo que, en teoría, se podrían obtener las mismas garantías con archivos de configuración tradicionales).
Estructura
Claves y valores
El registro contiene dos elementos básicos: claves y valores . Las claves del registro son objetos contenedores similares a las carpetas. Los valores del registro son objetos no contenedores similares a los archivos. Las claves pueden contener valores y subclaves. Se hace referencia a las claves con una sintaxis similar a las rutas de acceso de Windows, utilizando barras invertidas para indicar los niveles de jerarquía. Las claves deben tener un nombre que no distinga entre mayúsculas y minúsculas, sin barras invertidas.
Solo se puede acceder a la jerarquía de 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) que está asignado al contenido de una clave de registro precargada por el kernel desde un "colmenar" almacenado, o al contenido de una subclave dentro de otra clave raíz, o asignado a un servicio registrado o DLL que proporciona acceso a sus subclaves y valores contenidos.
Por ejemplo, HKEY hace referencia 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, tradicionalmente nombradas según sus identificadores constantes definidos en la API de Win32, o por abreviaturas sinónimas (dependiendo de las aplicaciones): [ 4 ]
- HKEY_LOCAL_MACHINE o HKLM
- HKEY_CURRENT_CONFIG o HKCC
- HKEY_CLASSES_ROOT o HKCR
- HKEY_CURRENT_USER o HKCU
- HKEY_USERS o HKU
- HKEY_PERFORMANCE_DATA (solo en Windows NT, pero invisible en el Editor del Registro de Windows) [ 5 ]
- HKEY_DYN_DATA (solo en Windows 9x y visible en el Editor del Registro de Windows)
Al igual que otros archivos y servicios en Windows, todas las claves del registro pueden estar restringidas por listas de control de acceso (ACL), según los privilegios del usuario, los tokens de seguridad adquiridos por las aplicaciones o las políticas de seguridad del sistema (estas restricciones pueden estar predefinidas por el propio sistema y configuradas por los administradores locales o de dominio). Diferentes usuarios, programas, servicios o sistemas remotos pueden ver solo algunas partes de la jerarquía o jerarquías distintas a partir de las mismas claves raíz.
Los valores del registro son pares nombre/dato almacenados en claves. Se hace referencia a ellos de forma independiente de las claves. Cada valor almacenado en una clave tiene un nombre único, sin distinción entre mayúsculas y minúsculas. Las funciones de la API de Windows que consultan y manipulan los valores del registro toman los nombres de los valores por separado de la ruta de la clave o el identificador que la identifica. Los nombres de los valores del registro pueden contener barras invertidas, pero esto dificulta distinguirlos de sus rutas de clave al usar algunas funciones antiguas de la API del Registro de Windows (cuyo uso está obsoleto en Win32).
La terminología es algo engañosa, ya que cada clave de registro es similar a una matriz asociativa , donde la terminología estándar se referiría a la parte del nombre de cada valor de registro como una "clave". Los términos son un vestigio del registro de 16 bits en Windows 3, en el que las claves de registro no podían contener pares arbitrarios de nombre/dato, sino que contenían solo un valor sin nombre (que tenía que ser una cadena). En este sentido, el registro de Windows 3 era como una única matriz asociativa, en la que las claves (en el sentido tanto de "clave de registro" como de "clave de matriz asociativa") formaban una jerarquía, y los valores de registro eran todos cadenas. Cuando se creó el registro de 32 bits, también se añadió la capacidad de crear múltiples valores con nombre por clave, y los significados de los nombres se distorsionaron un poco. [ 6 ] Para la compatibilidad con el comportamiento anterior, cada clave de registro puede tener un valor "predeterminado", cuyo nombre es la cadena vacía.
Cada valor puede almacenar datos arbitrarios con longitud y codificación variables, pero que está asociado a un tipo simbólico (definido como una constante numérica) que define cómo analizar estos datos. Los tipos estándar son: [ 7 ]
Claves raíz
Las claves en el nivel raíz de la base de datos jerárquica generalmente se nombran según sus definiciones de la API de Windows , que comienzan con HKEY [ 2 ]. Con frecuencia se abrevian a un nombre corto de tres o cuatro letras que comienza con "HK" (por ejemplo, HKCU y HKLM ). Técnicamente, son identificadores predefinidos (con valores constantes conocidos) para claves específicas que se mantienen en memoria o se almacenan en archivos de registro almacenados en el sistema de archivos local y cargados por el núcleo del sistema al arrancar y luego compartidos (con varios derechos de acceso) entre todos los procesos que se ejecutan en el sistema local, o cargados y asignados en todos los procesos iniciados en una sesión de usuario cuando el usuario inicia sesión en el sistema.
Los nodos HKEY_LOCAL_MACHINE (datos de configuración específicos de la máquina local) y HKEY_CURRENT_USER (datos de configuración específicos del usuario) tienen una estructura similar; las aplicaciones de usuario suelen buscar su configuración primero en HKEY_CURRENT_USER\Software\Nombre del proveedor\Nombre de la aplicación\Versión\Nombre de la configuración , y si no la encuentran, la buscan en la misma ubicación bajo la clave HKEY_LOCAL_MACHINE . Sin embargo, puede ocurrir lo contrario con las configuraciones de directivas impuestas por el administrador, donde HKLM puede tener prioridad sobre HKCU . El Programa del logotipo de Windows tiene requisitos específicos sobre dónde se pueden almacenar los diferentes tipos de datos de usuario y que se siga el concepto de mínimo privilegio para que no se requiera acceso de nivel de administrador para usar una aplicación. [ a ] [ 10 ]
HKEY_LOCAL_MACHINE (HKLM)
Abreviado como HKLM , HKEY_LOCAL_MACHINE almacena configuraciones específicas del equipo local. [ 11 ]
La clave ubicada por HKLM no se almacena en el disco, sino que el núcleo del sistema la mantiene en memoria para asignar todas las demás subclaves. Las aplicaciones no pueden crear subclaves adicionales. En Windows NT, esta clave contiene cuatro subclaves: SAM , SECURITY , SYSTEM y SOFTWARE , que se cargan al arrancar el sistema en sus respectivos archivos ubicados en la carpeta %SystemRoot%\System32\config\ . Una quinta subclave, HARDWARE , es volátil y se crea dinámicamente, por lo que no se almacena en un archivo (muestra todos los dispositivos Plug-and-Play detectados). En Windows Vista y versiones posteriores, una sexta y una séptima subclave —COMPONENTS y BCD— son asignadas en memoria por el núcleo bajo demanda y cargadas desde %SystemRoot%\System32\config\COMPONENTS o desde los datos de configuración de arranque, \boot\BCD en la partición del sistema.
- La clave HKLM\SAM suele aparecer vacía para la mayoría de los usuarios (a menos que los administradores del sistema local o de los dominios que lo gestionan les otorguen acceso). Se utiliza para hacer referencia a todas las bases de datos del Administrador de cuentas de seguridad (SAM) de todos los dominios en los que el sistema local ha sido autorizado o configurado administrativamente (incluido el dominio local del sistema en ejecución, cuya base de datos SAM se almacena en una subclave también denominada "SAM"; se crearán otras subclaves según sea necesario, una para cada dominio adicional). Cada base de datos SAM contiene todas las cuentas integradas (principalmente alias de grupo) y las cuentas configuradas (usuarios, grupos y sus alias, incluidas las cuentas de invitado y las cuentas de administrador) creadas y configuradas en el dominio correspondiente. Para cada cuenta en ese dominio, contiene, entre otros datos, el nombre de usuario que se puede usar para iniciar sesión en ese dominio, el identificador único interno del usuario en el dominio, un hash criptográfico de la contraseña de cada usuario para cada protocolo de autenticación habilitado , la ubicación de almacenamiento de su registro de usuario, varios indicadores de estado (por ejemplo, si la cuenta se puede enumerar y es visible en la pantalla de solicitud de inicio de sesión) y la lista de dominios (incluido el dominio local) en los que se configuró la cuenta.
- La clave HKLM\SECURITY suele aparecer vacía para la mayoría de los usuarios (a menos que tengan acceso otorgado por usuarios con privilegios administrativos) y está vinculada a la base de datos de seguridad del dominio en el que el usuario actual ha iniciado sesión (si el usuario ha iniciado sesión en el dominio del sistema local, esta clave estará vinculada al subárbol del registro almacenado por la máquina local y administrado por los administradores del sistema local o por la cuenta "Sistema" integrada y los instaladores de Windows). El núcleo accederá a ella para leer y aplicar la política de seguridad aplicable al usuario actual y a todas las aplicaciones u operaciones ejecutadas por este usuario. También contiene una subclave "SAM" que está vinculada dinámicamente a la base de datos SAM del dominio en el que el usuario actual ha iniciado sesión.
- La clave HKLM\SYSTEM normalmente solo es modificable por usuarios con privilegios administrativos en el sistema local. Contiene información sobre la configuración del sistema Windows, datos para el generador seguro de números aleatorios (RNG), la lista de dispositivos montados actualmente que contienen un sistema de archivos, varios conjuntos de control numerados (como HKLM\SYSTEM\ControlSet001 ) que contienen configuraciones alternativas para los controladores de hardware del sistema y los servicios que se ejecutan en el sistema local (incluido el que se usa actualmente y una copia de seguridad), una subclave HKLM\SYSTEM\Select que contiene el estado de estos conjuntos de control y un HKLM\SYSTEM\CurrentControlSet que se vincula dinámicamente al arrancar con el conjunto de control que se usa actualmente en el sistema local. Cada conjunto de control configurado contiene:
- una subclave Enum que enumera todos los dispositivos Plug-and-Play conocidos y los asocia con los controladores del sistema instalados (y almacena las configuraciones específicas del dispositivo de estos controladores),
- una subclave de Servicios que enumera todos los controladores del sistema instalados (con configuración no específica del dispositivo y la enumeración de los dispositivos para los que se instancian) y todos los programas que se ejecutan como servicios (cómo y cuándo se pueden iniciar automáticamente),
- una subclave de control que organiza los distintos controladores de hardware y programas que se ejecutan como servicios y toda la demás configuración de todo el sistema,
- una subclave de Perfiles de hardware que enumera los distintos perfiles que se han ajustado (cada uno con ajustes de "Sistema" o "Software" utilizados para modificar el perfil predeterminado, ya sea en los controladores y servicios del sistema o en las aplicaciones), así como la subclave Perfiles de hardware\Actual que está vinculada dinámicamente a uno de estos perfiles.
- La subclave HKLM\SOFTWARE contiene configuraciones de software y Windows (en el perfil de hardware predeterminado). Suele ser modificada por los instaladores de aplicaciones y sistemas. Está organizada por proveedor 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 desde extensiones de archivo, tipos MIME, ID de clases de objetos e ID de interfaces (para OLE, COM/DCOM y ActiveX), hasta las aplicaciones o DLL instaladas que pueden manejar estos tipos en la máquina local (sin embargo, estas asociaciones son configurables para cada usuario, véase más abajo), y una subclave "Policies" (también organizada por proveedor) para aplicar políticas de uso general a las aplicaciones y servicios del sistema (incluido el almacén central de certificados utilizado para autenticar, autorizar o denegar sistemas o servicios remotos que se ejecutan fuera del dominio de la red local).
- La clave HKLM\SOFTWARE\Wow6432Node es utilizada por aplicaciones de 32 bits en un sistema operativo Windows de 64 bits, y es equivalente a HKLM\SOFTWARE pero independiente de ella . La ruta de la clave se presenta de forma transparente a las aplicaciones de 32 bits por WoW64 como HKLM\SOFTWARE [ 12 ] (de forma similar a como las aplicaciones de 64 bits ven %SystemRoot%\Syswow64 como %SystemRoot%\System32 ).
HKEY_CLASSES_ROOT (HKCR)
- Abreviado como HKCR , HKEY_CLASSES_ROOT contiene información sobre las aplicaciones registradas, como asociaciones de archivos e identificadores de clase de objeto OLE , vinculándolas a las aplicaciones utilizadas para gestionar estos elementos. En Windows 2000 y versiones posteriores, HKCR es una compilación de HKCU\Software\Classes (basada en el usuario) y HKLM\Software\Classes (basada en la máquina) . Si un valor determinado existe en ambas subclaves, prevalece el de HKCU\Software\Classes . [ 13 ] El diseño permite el registro de objetos COM tanto a nivel de máquina como de usuario .
HKEY_USERS (HKU)
- Abreviado como HKU , HKEY_USERS contiene subclaves que corresponden a las claves HKEY_CURRENT_USER para cada perfil de usuario cargado activamente en la máquina, aunque los subárboles de usuario generalmente solo se cargan para los usuarios que han iniciado sesión actualmente.
HKEY_CURRENT_USER (HKCU)
- Abreviado como HKCU , HKEY_CURRENT_USER almacena configuraciones específicas del usuario que ha iniciado sesión. [ 14 ] La clave HKEY_CURRENT_USER es un enlace a la subclave de HKEY_USERS que corresponde al usuario; la misma información es accesible en ambas ubicaciones. La subclave específica a la que se hace referencia es (HKU)\(SID)\... donde (SID) corresponde al SID de Windows ; si HKCU tiene el siguiente sufijo (HKCU)\Software\Classes\... entonces corresponde a (HKU)\(SID)_CLASSES\... es decir, la cadena de sufijo _CLASSES se agrega al (SID).
- En los sistemas Windows NT, la configuración de cada usuario se almacena en archivos propios llamados NTUSER.DAT y USRCLASS.DAT, ubicados en la subcarpeta Documentos y configuración (o en la subcarpeta Usuarios en Windows Vista y versiones posteriores). La configuración de este archivo acompaña al usuario mediante un perfil móvil que se transfiere de un equipo a otro.
HKEY_PERFORMANCE_DATA
- HKEY_PERFORMANCE_DATA proporciona información en tiempo de ejecución sobre los datos de rendimiento proporcionados por el núcleo de NT o por los controladores, programas y servicios del sistema en ejecución que proporcionan dichos datos. Esta clave no se almacena en ningún subárbol ni se muestra en el Editor del Registro, pero es visible a través de las funciones del registro en la API de Windows, o en una vista simplificada a través de la pestaña Rendimiento del Administrador de tareas (solo para algunos datos de rendimiento del sistema local) o a través de paneles de control más avanzados (como el Monitor de rendimiento o el Analizador de rendimiento, que permite recopilar y registrar estos datos, incluso desde sistemas remotos).
HKEY_DYN_DATA
- HKEY_DYN_DATA se utiliza únicamente en Windows 95, Windows 98 y Windows ME . [ 15 ] Contiene información sobre dispositivos de hardware, incluyendo Plug and Play y estadísticas de rendimiento de red. La información de este subárbol tampoco se almacena en el disco duro; la información de Plug and Play se recopila y configura al inicio y se almacena en la memoria. [ 16 ]
Urticaria
Aunque el registro se presenta como una base de datos jerárquica integrada, las ramas del registro se almacenan en realidad en varios archivos de disco llamados hives . [ 17 ] (La palabra hive constituye una broma interna ). [ 18 ]
Algunos subárboles de registro son volátiles y no se almacenan en disco. Un ejemplo de esto es el subárbol de la rama que comienza en HKLM\HARDWARE . Este subárbol registra información sobre el hardware del sistema y se crea cada vez que el sistema arranca y realiza la detección de hardware.
La configuración individual de los usuarios en un sistema se almacena en un archivo de disco (hive) por usuario. Durante el inicio de sesión del usuario, el sistema carga el archivo de usuario en HKEY_USERS y establece la referencia simbólica HKCU para que apunte al usuario actual. Esto permite que las aplicaciones almacenen y recuperen la configuración del usuario actual de forma implícita en HKCU .
No todos los subárboles se cargan simultáneamente. Al arrancar el sistema, solo se carga un conjunto mínimo de subárboles, y posteriormente, estos se cargan a medida que el sistema operativo se inicializa, cuando los usuarios inician sesión o cuando una aplicación carga explícitamente un subárbol.
Ubicaciones de los archivos
El registro se almacena físicamente en varios archivos, que generalmente están ofuscados para las API en modo de usuario que se utilizan para manipular los datos dentro del registro. Dependiendo de la versión de Windows, habrá diferentes archivos y diferentes ubicaciones para estos archivos, pero todos están en la máquina local. La ubicación de los archivos de registro del sistema en Windows NT es %SystemRoot%\System32\config\ ; la clave de registro de usuario HKEY_CURRENT_USER específica del usuario se almacena en Ntuser.dat dentro del perfil de usuario. Hay uno de estos por usuario; si un usuario tiene un perfil móvil , entonces este archivo se copiará hacia y desde un servidor al cerrar sesión y al iniciar sesión, respectivamente. Un segundo archivo de registro específico del usuario llamado UsrClass.dat contiene entradas de registro COM y no es móvil de forma predeterminada.
Windows NT
Los sistemas Windows NT almacenan el registro en un formato de archivo binario que puede exportarse, cargarse y descargarse mediante el Editor del Registro en estos sistemas operativos. Los siguientes archivos de registro del sistema se almacenan en %SystemRoot%\System32\config\ :
- Sam – HKEY_LOCAL_MACHINE\SAM
- Seguridad – HKEY_LOCAL_MACHINE\SECURITY
- Software – HKEY_LOCAL_MACHINE\SOFTWARE
- Sistema – HKEY_LOCAL_MACHINE\SYSTEM
- Predeterminado – HKEY_USERS\.DEFAULT
- Userdiff – No está asociado a un subárbol. Se utiliza únicamente al actualizar sistemas operativos. [ 19 ]
El siguiente archivo se almacena en la carpeta de perfil de cada usuario:
- %USERPROFILE%\Ntuser.dat – HKEY_USERS\< User SID > (vinculado por HKEY_CURRENT_USER )
Para Windows 2000, Server 2003 y Windows XP, se utiliza el siguiente archivo adicional específico del usuario para las asociaciones de archivos y la información COM:
- %USERPROFILE%\Local Settings\Application Data\Microsoft\Windows\Usrclass.dat (la ruta está localizada) – HKEY_USERS\ < User SID > _Classes ( HKEY_CURRENT_USER\Software\Classes )
Para Windows Vista y versiones posteriores, la ruta se cambió a:
- %USERPROFILE%\AppData\Local\Microsoft\Windows\Usrclass.dat (la ruta no está localizada) alias %LocalAppData%\Microsoft\Windows\Usrclass.dat – HKEY_USERS\ < User SID > _Classes ( HKEY_CURRENT_USER\Software\Classes )
Windows 2000 mantiene una copia alternativa de los subárboles del registro ( .ALT ) e intenta cambiar a ella cuando se detecta corrupción. [ 20 ] Windows XP y Windows Server 2003 no mantienen un subárbol System.alt porque NTLDR en esas versiones de Windows puede procesar el archivo System.log para actualizar un subárbol del sistema que se ha vuelto inconsistente durante un apagado o un fallo. Además, la carpeta %SystemRoot%\Repair contiene una copia de los subárboles del registro del sistema que se crearon después de la instalación y el primer inicio correcto de Windows.
Cada archivo de datos del registro tiene un archivo asociado con la extensión ".log" que actúa como un registro de transacciones y se utiliza para garantizar que cualquier actualización interrumpida pueda completarse en el siguiente inicio. [ 21 ] Internamente, los archivos del registro se dividen en "contenedores" de 4 kB que contienen colecciones de "celdas". [ 21 ]
Windows 9x
Los archivos de registro se almacenan en %WINDIR% con los nombres USER.DAT y SYSTEM.DAT , además de CLASSES.DAT en Windows ME. Asimismo, cada perfil de usuario (si los perfiles están habilitados) tiene su propio archivo USER.DAT , que se encuentra en el directorio de perfil del usuario en %WINDIR%\Profiles\ < Nombre de usuario > \ .
Windows 3.11
El único archivo de registro se llama REG.DAT y se almacena en %WINDIR% .
Windows 10 Mobile
Para acceder a los archivos de registro, el dispositivo debe configurarse en un modo especial utilizando una de las siguientes opciones:
- WpInternals (Ponga el dispositivo en modo flash).
- Herramientas de interoperabilidad (Montar la partición del sistema operativo principal con MTP).
Si alguno de los métodos anteriores funcionó, los archivos de registro del dispositivo se pueden encontrar en {Phone}\EFIESP\Windows\System32\config .
Edición
Editores del registro
El registro contiene información de configuración importante para el sistema operativo, las aplicaciones instaladas y la configuración individual de cada usuario y aplicación. Un cambio descuidado en la configuración del sistema operativo en el registro podría causar daños irreversibles, por lo que generalmente solo los programas de instalación realizan cambios en la base de datos del registro durante la instalación/configuración y la desinstalación. Si un usuario desea editar el registro manualmente, Microsoft recomienda realizar una copia de seguridad del registro antes de realizar el cambio. [ 22 ] Cuando se elimina un programa del panel de control, es posible que no se elimine por completo y, en caso de errores o fallos causados por referencias a programas faltantes, el usuario podría tener que revisar manualmente directorios como Archivos de programa. Después de esto, el usuario podría necesitar eliminar manualmente cualquier referencia al programa desinstalado en el registro. Esto generalmente se hace usando RegEdit.exe . [ 23 ] Editar el registro a veces es necesario para solucionar problemas específicos de Windows; por ejemplo, los problemas al iniciar sesión en un dominio se pueden resolver editando el registro. [ 24 ]
El Registro de Windows se puede editar manualmente utilizando programas como RegEdit.exe , aunque estas herramientas no muestran algunos de los metadatos del registro, como la fecha de la última modificación.
El editor del registro para la serie de sistemas operativos 3.1/95 es RegEdit.exe y para Windows NT es RegEdt32.exe ; en Windows XP, ambas funcionalidades se combinan. Existen herramientas opcionales y de terceros similares a RegEdit.exe para muchas versiones de Windows CE.
El Editor del Registro permite a los usuarios realizar las siguientes funciones:
- Crear, manipular, renombrar [ 25 ] y eliminar claves de registro, subclaves, valores y datos de valor.
- Importación y exportación de archivos .REG , exportación de datos en formato binario de registro de actividad (hive).
- Carga, manipulación y descarga de archivos con formato de subárbol del registro (solo en sistemas Windows NT).
- Configuración de permisos basada en ACL (solo sistemas Windows NT)
- Marcar como favoritos las claves de registro seleccionadas por el usuario.
- Búsqueda de cadenas específicas en nombres de claves, nombres de valores y datos de valores.
- Editar remotamente el registro en otro ordenador de la red.
Archivos .REG
Los archivos .REG (también conocidos como entradas de registro) son archivos de texto legibles por humanos para exportar e importar partes del registro utilizando una sintaxis basada en INI . Existen dos versiones principales de archivos .REG :
- Los archivos REG de Windows 9x y NT 4.0 están basados en ANSI . Comienzan con la cadena REGEDIT4 . [ 26 ]
- Los archivos REG de Windows 2000 y versiones posteriores están basados en Unicode . Comienzan con la cadena Windows Registry Editor Version 5.00 .
Los archivos .REG en formato Windows 9x pueden ser importados por Windows 2000 y versiones posteriores. [ 26 ] Estos sistemas posteriores también permiten exportar archivos .REG en formato Windows 9x/NT.
Los datos se almacenan en archivos .REG utilizando la siguiente sintaxis: [ 26 ]
[< Nombre de la colmena>\< Nombre de la clave>\< Nombre de la subclave>] "Nombre del valor" = <Tipo de valor>:<Datos del valor>El valor predeterminado de una clave se puede editar usando @ en lugar de "Nombre del valor":
[< Nombre de la colmena>\< Nombre de la clave>\< Nombre de la subclave>] @ = <Tipo de valor>:<Datos del valor>Los valores de cadena no requieren un < Tipo de valor > (ver ejemplo), pero las barras invertidas ( \ ) deben escribirse como una doble barra invertida ( \\ ), y las comillas ( " ) como barra invertida seguida de comillas ( \" ). (El requisito de escape no es totalmente consistente: existen archivos que contienen cadenas con una barra invertida inicial sin escape y el sistema los acepta para su importación). [ 27 ]
Por ejemplo, para agregar los valores "Valor A", "Valor B", etc. a la clave HKLM\SOFTWARE\Foobar :
Editor del Registro de Windows, versión 5.00 [ HKEY_LOCAL_MACHINE \SOFTWARE\Foobar] "Valor A" = "<Datos de valor de cadena con caracteres de escape>" "Valor B" = hex:<Datos binarios (como lista de valores hexadecimales separados por comas)> "Valor C" = dword:<Entero de valor DWORD> "Valor D" = hex(0):<REG_NONE (como lista de valores hexadecimales separados por comas)> "Valor E" = hex(1):<REG_SZ (como lista de valores hexadecimales separados por comas que representan una cadena terminada en NUL UTF-16LE)> "Valor F" = hex(2):<Datos de valor de cadena expandible (como lista de valores hexadecimales separados por comas que representan una cadena terminada en NUL UTF-16LE)> "Valor G" = hex(3):<Datos binarios (como lista de valores hexadecimales separados por comas)> ; igual a "Valor B" "Valor H" = hex(4):<Valor DWORD (como lista de 4 valores hexadecimales separados por comas, en orden de bytes little endian)> "Valor I" = hex(5):<Valor DWORD (como lista de 4 valores hexadecimales separados por comas, en orden de bytes big endian)> "Valor J" = hex(7):<Datos de valor de cadena múltiple (como lista de valores hexadecimales separados por comas que representan cadenas terminadas en NUL UTF-16LE)> "Valor K" = hex(8):<REG_RESOURCE_LIST (como lista de valores hexadecimales separados por comas)> "Valor L" = hex(a):<REG_RESOURCE_REQUIREMENTS_LIST (como lista de valores hexadecimales separados por comas)> "Valor M" = hex(b):<valor QWORD (como lista de 8 valores hexadecimales separados por comas, en orden de bytes little endian)>Los datos de los archivos .REG se pueden agregar o combinar con el registro haciendo doble clic en estos archivos o utilizando el modificador /s en la línea de comandos. Los archivos REG también se pueden usar para eliminar datos del registro.
Para eliminar una clave (y todas las subclaves, valores y datos), el nombre de la clave debe ir precedido de un signo menos ( - ). [ 26 ]
Por ejemplo, para eliminar la clave HKLM\SOFTWARE\Foobar (y todas las subclaves, valores y datos),
[ - HKEY_LOCAL_MACHINE \SOFTWARE\Foobar]Para eliminar un valor (y sus datos), los valores que se van a eliminar deben tener un signo menos ( - ) después del signo igual ( {{{1}}} ). [ 26 ]
Por ejemplo, para eliminar solo los valores "Valor A" y "Valor B" (y sus datos) de la clave HKLM\SOFTWARE\Foobar :
[ HKEY_LOCAL_MACHINE \SOFTWARE\Foobar] "Valor A" =- "Valor B" =-Para eliminar únicamente el valor predeterminado de la clave HKLM\SOFTWARE\Foobar (y sus datos):
[ HKEY_LOCAL_MACHINE \SOFTWARE\Foobar] @ =-Las líneas que comienzan con un punto y coma se consideran comentarios:
; Este es un comentario. Se puede colocar en cualquier parte de un archivo .reg [ HKEY_LOCAL_MACHINE \SOFTWARE\Foobar] "Valor" = "Cadena de ejemplo"Políticas de grupo
Las directivas de grupo de Windows pueden modificar las claves del registro de varias máquinas o usuarios individuales según las directivas establecidas. Cuando una directiva entra en vigor por primera vez para una máquina o un usuario individual, la configuración del registro especificada en la directiva se aplica a la configuración de la máquina o del usuario.
Windows también buscará políticas actualizadas y las aplicará periódicamente, normalmente cada 90 minutos. [ 28 ]
Mediante su alcance, una directiva define a qué máquinas y usuarios se aplicará. El estado de una directiva (ya sea una máquina o un usuario) se define mediante un conjunto de reglas que permiten filtrar por la ubicación de la máquina o la cuenta de usuario en el directorio de la organización, usuarios o cuentas de máquina específicos o grupos de seguridad. Se pueden configurar reglas más avanzadas mediante expresiones de Instrumental de administración de Windows ( WMI). Estas reglas permiten filtrar por propiedades como el nombre del fabricante del equipo, la arquitectura de la CPU, el software instalado o las redes a las que está conectado.
Por ejemplo, el administrador puede crear una directiva con una configuración de registro para los equipos del departamento de contabilidad y otra con una configuración de registro diferente (de bloqueo) para los terminales de autoservicio en el área de visitantes. Cuando un equipo se traslada de un ámbito a otro (por ejemplo, al cambiar su nombre o al moverlo a otra unidad organizativa), se aplica automáticamente la directiva correcta. Si se modifica una directiva, se vuelve a aplicar automáticamente a todos los equipos que se encuentran actualmente dentro de su ámbito.
La política se edita mediante varias plantillas administrativas que proporcionan una interfaz de usuario para seleccionar y modificar la configuración. El conjunto de plantillas administrativas es extensible y los paquetes de software que admiten este tipo de administración remota pueden registrar sus propias plantillas.
Edición de línea de comandos
El registro se puede manipular de varias maneras desde la línea de comandos . Las utilidades Reg.exe y RegIni.exe se incluyen en Windows XP y versiones posteriores. Para versiones anteriores de Windows, también se puede acceder al registro desde los CD del Kit de recursos o el CD de instalación original.
Además, se puede importar un archivo .REG desde la línea de comandos con el siguiente comando:
RegEdit.exe /s archivo
El parámetro / s indica que el archivo se fusionará silenciosamente con el registro. Si se omite, se le pedirá al usuario que confirme la operación. En Windows 98, Windows 95 y al menos algunas configuraciones de Windows XP, el modificador /s también hace que RegEdit.exe ignore la configuración del registro que permite a los administradores deshabilitarlo. Al usar el modificador /s, RegEdit.exe no devuelve un código de retorno apropiado si la operación falla, a diferencia de Reg.exe , que sí lo hace.
RegEdit.exe /e archivo
exporta todo el registro en formato V5 a un archivo .REG UNICODE , mientras que cualquiera de
RegEdit.exe /e archivo HKEY_CLASSES_ROOT[\ < clave > ] RegEdit.exe /e archivo HKEY_CURRENT_CONFIG[\ < clave > ] RegEdit.exe /e archivo HKEY_CURRENT_USER[\ < clave > ] RegEdit.exe /e archivo HKEY_LOCAL_MACHINE[\ < clave > ] RegEdit.exe /e archivo HKEY_USERS[\ < clave > ]
Exportar únicamente la (sub)clave especificada (que debe ir entre comillas si contiene espacios).
RegEdit.exe /un archivo
Exporta todo el registro en formato V4 a un archivo .REG ANSI .
RegEdit.exe / un archivo <clave>
Exporta únicamente la (sub)clave especificada (que debe ir entre comillas si contiene espacios).
También es posible usar Reg.exe . Aquí hay un ejemplo para mostrar el valor del valor de registro Versión:
Reg.exe QUERY HKLM\Software\Microsoft\ResKit /v Versión Otras opciones de línea de comandos incluyen un VBScript o JScript junto con CScript , WMI o WMIC.exe y Windows PowerShell .
Los permisos del registro se pueden manipular a través de la línea de comandos usando RegIni.exe y la herramienta {{{1}}} . Por ejemplo, los permisos en la clave HKEY_LOCAL_MACHINE\SOFTWARE se pueden mostrar usando:
SubInACL.exe /keyreg HKEY_LOCAL_MACHINE\SOFTWARE /display Comandos y scripts de PowerShell

Windows PowerShell incluye un proveedor de registro que presenta el registro como un tipo de ubicación similar al sistema de archivos. Los mismos comandos que se utilizan para manipular archivos y directorios en el sistema de archivos se pueden utilizar para manipular claves y valores del registro. [ 29 ]
Al igual que el sistema de archivos, PowerShell utiliza el concepto de ubicación actual , que define el contexto en el que operan los comandos por defecto. El comando Get-ChildItem (también disponible mediante los alias ls , dir o gci ) recupera las claves secundarias de la ubicación actual. Mediante el comando Set-Location (o el alias cd ), el usuario puede cambiar la ubicación actual a otra clave del registro. [ 29 ] Los comandos que renombran elementos, eliminan elementos, crean nuevos elementos o establecen el contenido de elementos o propiedades se pueden utilizar para renombrar claves, eliminar claves o subárboles completos o cambiar valores.
Mediante scripts de PowerShell, un administrador puede preparar scripts que, al ejecutarse, modifican el registro. Estos scripts se pueden distribuir a los administradores, quienes pueden ejecutarlos en sus respectivas máquinas. El proveedor de registro de PowerShell admite transacciones, lo que significa que se pueden agrupar varios cambios en el registro en una única transacción atómica. Una transacción atómica garantiza que todos los cambios se confirmen en la base de datos o, si el script falla, que ninguno se confirme. [ 29 ] [ 30 ]
Programas o scripts
El registro se puede editar a través de las API de la biblioteca de API base avanzada de Windows 32 ( advapi32.dll ). [ 31 ] Lista de funciones de la API del registro:
- Clave de cierre de registro
- Registro RegConnect
- Clave de creación de registro
- RegCreateKeyEx
- Clave de eliminación de registro
- RegDeleteValue
- Clave de enumeración de registro
- RegEnumKeyEx
- RegEnumValue
- Clave de vaciado de registro
- RegGetKeySecurity
- Clave de carga de registro
- NotificarCambioDeClaveValor
- RegOpenKey
- RegOpenKeyEx
- Clave de información de consulta de registro
- RegQueryMultipleValues
- Valor de consulta de registro
- RegQueryValueEx
- Clave de reemplazo de registro
- Clave de restauración de registro
- Clave de guardado de registro
- RegSetKeySecurity
- RegSetValue
- RegSetValueEx
- Clave de descarga de registro
Muchos lenguajes de programación ofrecen funciones o clases de biblioteca de tiempo de ejecución integradas que encapsulan las API subyacentes de Windows y, por lo tanto, permiten que los programas almacenen configuraciones en el registro (por ejemplo, Microsoft.Win32.Registry en VB.NET y C# , o TRegistry en Delphi y Free Pascal ). Las aplicaciones habilitadas para COM , como Visual Basic 6, pueden usar el objeto WSH WScript.Shell . Otra forma es usar la herramienta del Kit de recursos de Windows, Reg.exe , ejecutándola desde el código, [ 32 ] aunque esto se considera una mala práctica de programación.
De manera similar, los lenguajes de scripting como Perl (con Win32::TieRegistry ), Python (con winreg), Tcl (que viene incluido con el paquete de registro), [ 33 ] Windows Powershell y Windows Scripting Host también permiten editar el registro desde scripts.
Edición sin conexión
El archivo offreg.dll [ 34 ] , disponible en el Windows Driver Kit , ofrece un conjunto de API para la creación y manipulación de subárboles de registro actualmente no cargados, similares a los proporcionados por advapi32.dll.
También es posible editar el registro (cabecillas) de un sistema sin conexión desde Windows PE o Linux (en este último caso, utilizando herramientas de código abierto ).
autorregistro COM
Antes de la introducción de COM sin registro , se animaba a los desarrolladores a agregar código de inicialización a los binarios dentro y fuera del proceso para realizar la configuración del registro necesaria para que ese objeto funcionara. Para los binarios dentro del proceso, como los archivos .DLL y .OCX, los módulos normalmente exportaban una función llamada DllInstall() [ 35 ] que podía ser llamada por los programas de instalación o invocada manualmente con utilidades como Regsvr32.exe; [ 36 ] los binarios fuera del proceso normalmente admiten los argumentos de línea de comandos /Regserver y /Unregserver que creaban o eliminaban la configuración de registro necesaria. [ 37 ] Las aplicaciones COM que fallan debido a problemas de DLL Hell generalmente se pueden reparar con RegSvr32.exe o el modificador /RegServer sin tener que volver a invocar los programas de instalación. [ 38 ]
Funcionalidad avanzada
Windows expone API que permiten a las aplicaciones en modo usuario registrarse para recibir un evento de notificación si se modifica una clave de registro específica. [ 39 ] También hay API disponibles para permitir que las aplicaciones en modo kernel filtren y modifiquen las llamadas al registro realizadas por otras aplicaciones. [ 40 ]
Windows también admite el acceso remoto al registro de otro equipo a través de la función RegConnectRegistry [ 41 ] si el servicio de Registro remoto está en ejecución, configurado correctamente y su tráfico de red no está bloqueado por un firewall. [ 42 ]
Seguridad
Cada clave del registro de Windows NT puede tener un descriptor de seguridad asociado . Este descriptor contiene una lista de control de acceso (ACL) que describe qué grupos de usuarios o usuarios individuales tienen permisos de acceso, ya sea otorgados o denegados. El conjunto de permisos del registro incluye 10 derechos/permisos que se pueden otorgar o denegar explícitamente a un usuario o grupo de usuarios.
Al igual que con otros objetos protegibles en el sistema operativo, las entradas de control de acceso (ACE) individuales en el descriptor de seguridad pueden ser explícitas o heredadas de un objeto padre. [ 43 ]
La Protección de recursos de Windows es una función de Windows Vista y versiones posteriores de Windows que utiliza la seguridad para denegar a los administradores y al sistema el acceso de ESCRITURA a algunas claves confidenciales para proteger la integridad del sistema contra el malware y las modificaciones accidentales. [ 44 ]
Las ACE especiales en el descriptor de seguridad también pueden implementar un control de integridad obligatorio para la clave y las subclaves del registro. Un proceso que se ejecuta con un nivel de integridad inferior no puede escribir, cambiar ni eliminar una clave o valor del registro, incluso si a la cuenta del proceso se le ha concedido acceso mediante la ACL. Por ejemplo, Internet Explorer, que se ejecuta en modo protegido, puede leer las claves y valores del registro de integridad media y baja del usuario que ha iniciado sesión, pero solo puede modificar las claves de baja integridad. [ 45 ]
Fuera del ámbito de la seguridad, las claves del registro no se pueden eliminar ni editar debido a otras causas. Las claves del registro que contienen caracteres NUL no se pueden eliminar con los editores de registro estándar y requieren una utilidad especial para su eliminación, como RegDelNull . [ 46 ] [ 47 ]
Copias de seguridad y recuperación
A lo largo de los años, las distintas ediciones de Windows han admitido diversos métodos para realizar copias de seguridad y restaurar el registro, algunos de los cuales ya no se utilizan:
- La función Restaurar sistema puede realizar copias de seguridad del registro y restaurarlo siempre que Windows sea arrancable, o desde el Entorno de recuperación de Windows (a partir de Windows Vista).
- NTBackup puede realizar copias de seguridad del registro como parte del estado del sistema y restaurarlo. La recuperación automática del sistema en Windows XP también puede restaurar el registro.
- En Windows NT, la opción Última configuración válida conocida en el menú de inicio vuelve a vincular la clave HKLM\SYSTEM\CurrentControlSet , que almacena información sobre el hardware y los controladores de dispositivos.
- Windows 98 y Windows ME incluyen herramientas de comprobación del registro de línea de comandos (Scanreg.exe) y de interfaz gráfica de usuario (Scanregw.exe) para comprobar y corregir la integridad del registro, crear hasta cinco copias de seguridad automáticas periódicas de forma predeterminada y restaurarlas manualmente o cuando se detecte corrupción. [ 48 ] La herramienta de comprobación del registro realiza una copia de seguridad del registro, de forma predeterminada, en %Windir%\Sysbckup. Scanreg.exe también puede ejecutarse desde MS-DOS . [ 49 ]
- 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 la configuración (Cfgback.exe) para realizar copias de seguridad y restaurar el registro. Además, Windows 95 realiza copias de seguridad del registro en los archivos system.da0 y user.da0 en cada arranque correcto.
- Windows NT 4.0 incluía RDISK.EXE , una utilidad para realizar copias de seguridad y restaurar todo el registro. [ 50 ]
- El kit de recursos de Windows 2000 contenía un par de utilidades no compatibles llamadas Regback.exe y RegRest.exe para la copia de seguridad y recuperación del registro. [ 51 ]
- Las copias de seguridad automáticas periódicas del registro ahora están deshabilitadas de forma predeterminada en la actualización de mayo de 2019 de Windows 10 (versión 1903). Microsoft recomienda usar la Restauración del sistema en su lugar. [ 52 ]
Política
Política de grupo
Windows 2000 y versiones posteriores de Windows utilizan la Directiva de grupo para aplicar configuraciones del registro a través de una extensión de cliente específica del registro en el motor de procesamiento de la Directiva de grupo. [ 53 ] La directiva se puede aplicar localmente a un solo equipo mediante gpedit.msc o a varios usuarios y equipos en un dominio mediante gpmc.msc .
Sistemas heredados
En Windows 95, Windows 98, Windows ME y Windows NT 4.0, los administradores pueden usar un archivo especial que se integra al registro, llamado archivo de directiva ( POLICY.POL ). Este archivo permite a los administradores impedir que los usuarios sin privilegios de administrador modifiquen la configuración del registro, como el nivel de seguridad de Internet Explorer y el fondo de escritorio. El archivo de directiva se utiliza principalmente en empresas con un gran número de ordenadores, donde es necesario proteger la empresa de usuarios malintencionados o negligentes.
La extensión predeterminada para el archivo de directivas es .POL . Este archivo filtra la configuración que aplica por usuario y por grupo (un grupo es un conjunto definido de usuarios). Para ello, el archivo de directivas se integra en el registro, impidiendo que los usuarios lo eludan simplemente revirtiendo la configuración. El archivo de directivas suele distribuirse a través de una red local (LAN), pero también puede ubicarse en el equipo local.
El archivo de directivas se crea mediante una herramienta gratuita de Microsoft llamada poledit.exe para Windows 95/Windows 98 y con un módulo de administración de equipos para Windows NT. El editor requiere permisos de administrador para ejecutarse en sistemas que los utilizan. El editor también puede modificar directamente la configuración actual del registro del equipo local y, si el servicio de registro remoto está instalado e iniciado en otro equipo, también puede modificar el registro de este último. El editor de directivas carga la configuración que puede modificar desde archivos .ADM , uno de los cuales se incluye y contiene la configuración proporcionada por el shell de Windows. El archivo .ADM es de texto plano y permite una fácil localización al almacenar todas las cadenas en un solo lugar.
Virtualización
Virtualización de archivos INI
Los núcleos de Windows NT admiten la redirección de las API relacionadas con archivos INI a un archivo virtual en una ubicación del registro como HKEY_CURRENT_USER mediante una función llamada "InifileMapping". [ 54 ] Esta funcionalidad se introdujo para permitir que las aplicaciones heredadas escritas para versiones de Windows de 16 bits se ejecutaran en plataformas Windows NT, donde la carpeta Sistema ya no se considera una ubicación apropiada para datos o configuraciones específicas del usuario. Las aplicaciones de 32 bits no compatibles también se pueden redirigir de esta manera, aunque la función se concibió originalmente para aplicaciones de 16 bits.
Virtualización del registro
Windows Vista introdujo una virtualización limitada del registro, mediante la cual las aplicaciones mal escritas que no respetan el principio del mínimo privilegio y, en su lugar, intentan escribir datos de usuario en una ubicación del sistema de solo lectura (como la clave HKEY_LOCAL_MACHINE ), se redirigen silenciosamente a una ubicación más apropiada, sin modificar la propia aplicación.
De forma similar, la virtualización de aplicaciones redirige todas las operaciones de registro no válidas de una aplicación a una ubicación como un archivo. Al utilizarse junto con la virtualización de archivos, esto permite que las aplicaciones se ejecuten en una máquina sin necesidad de estar instaladas en ella.
Los procesos de baja integridad también pueden usar la virtualización del registro. Por ejemplo, Internet Explorer 7 u 8 ejecutándose en "Modo protegido" en Windows Vista y versiones posteriores redirigirá automáticamente las escrituras del registro realizadas por los controles ActiveX a una ubicación aislada para frustrar ciertos tipos de vulnerabilidades de seguridad .
El Application Compatibility Toolkit [ 55 ] proporciona adaptadores que pueden redirigir de forma transparente las operaciones del Registro HKEY_LOCAL_MACHINE o HKEY_CLASSES_ROOT a HKEY_CURRENT_USER para abordar errores de " LUA " que hacen que las aplicaciones no funcionen para usuarios con derechos insuficientes.
Desventajas
Los críticos calificaron el registro de Windows 95 como un punto único de fallo , ya que era necesario reinstalar el sistema operativo si el registro se corrompía. Sin embargo, Windows NT utiliza registros de transacciones para protegerse contra la corrupción durante las actualizaciones. Las versiones actuales de Windows utilizan dos niveles de archivos de registro para garantizar la integridad incluso en caso de fallo de alimentación o eventos catastróficos similares durante las actualizaciones de la base de datos. [ 56 ] Incluso en caso de un error irrecuperable, Windows puede reparar o reinicializar las entradas de registro dañadas durante el arranque del sistema. [ 56 ]
Richard WM Jones, autor de libguestfs y hivex (herramientas para leer y escribir el registro desde sistemas distintos a la instalación de Windows del host, incluidos sistemas que no son Windows), hace las siguientes críticas: [ 27 ]
- En comparación con una base de datos con características como columnas indexadas, el registro con sus conceptos de directorios (claves), archivos (valores) y atributos extendidos (permisos) es más un sistema de archivos, y uno incompleto además. La falta de indexación de columnas ha llevado a la proliferación de claves con nombres extraños como \ControlSet001\Control\CriticalDeviceDatabase\pci#ven_1af4&dev_1001&subsys_00000000 .
- El formato de la colmena se basa en la estructura del compilador original de la década de 1990. La implementación del lector en Windows realiza una validación insuficiente, lo que facilita que se bloquee o falle debido a estructuras de punteros incorrectas (bucles de referencia, punteros fuera de rango). La implementación del escritor no inicializa correctamente la memoria no utilizada, lo que provoca fugas de estructuras de datos del kernel hacia partes no utilizadas del registro.
- Las distintas versiones de Windows tienen diferentes interpretaciones sobre a qué se refiere cada "tipo" en el registro. Los tipos de cadena como REG_SZ se almacenaban originalmente en ASCII de 7 bits, antes de cambiarse posteriormente a UTF-16LE, por lo que para leer y escribir correctamente un subárbol del registro, sería necesario conocer la versión de Windows a la que está asociado.
Equivalentes y alternativas
En Windows, el uso del registro para almacenar datos de programas queda a discreción del desarrollador. Microsoft proporciona interfaces de programación para almacenar datos en archivos XML (mediante MSXML ) o archivos de base de datos (mediante SQL Server Compact ), que los desarrolladores pueden utilizar. Asimismo, los desarrolladores tienen la libertad de usar alternativas que no sean de Microsoft o desarrollar sus propios sistemas de almacenamiento de datos.
A diferencia del modelo de base de datos binaria del Registro de Windows, otros sistemas operativos utilizan archivos de texto plano separados para la configuración de demonios y aplicaciones, pero agrupan estas configuraciones para facilitar su gestión.
- En los sistemas operativos tipo Unix (incluido Linux ) que siguen el estándar de jerarquía del sistema de archivos (XDG) , los archivos de configuración de todo el sistema (información similar a la que aparecería en HKEY_LOCAL_MACHINE en Windows) se almacenan tradicionalmente en archivos en /etc/ y sus subdirectorios, o a veces en /usr/local/etc/ . La información por usuario (información que sería aproximadamente equivalente a la de HKEY_CURRENT_USER ) se almacena en directorios y archivos ocultos (que comienzan con un punto ) dentro del directorio personal del usuario . Sin embargo, las aplicaciones compatibles con XDG deben hacer referencia a las variables de entorno definidas en la especificación del directorio base. [ 57 ]
- En macOS , los archivos de configuración del sistema suelen almacenarse en la carpeta /Library/ , mientras que los archivos de configuración de cada usuario se almacenan en la carpeta ~/Library/ correspondiente en el directorio personal del usuario, y los archivos de configuración establecidos por el sistema se encuentran en /System/Library/ . Dentro de estos directorios, una aplicación suele almacenar un archivo de lista de propiedades en el subdirectorio Preferences/ .
- RISC OS (que no debe confundirse con MIPS RISC/os ) utiliza directorios para los datos de configuración, lo que permite copiar las aplicaciones en directorios de aplicaciones , a diferencia del proceso de instalación independiente que caracteriza a las aplicaciones de Windows; este enfoque también se utiliza en ROX Desktop para Linux. [ 58 ] Esta configuración basada en directorios también permite utilizar diferentes versiones de la misma aplicación, ya que la configuración se realiza "sobre la marcha". [ 59 ] Si se desea eliminar la aplicación, basta con borrar la carpeta que la contiene. [ 60 ] [ 61 ] Esto a menudo no elimina la configuración que se almacena independientemente de la aplicación, generalmente dentro de la estructura !Boot del ordenador , en !Boot Choices o potencialmente en cualquier lugar de un servidor de archivos de red. Es posible copiar programas instalados entre ordenadores que ejecutan RISC OS copiando los directorios de aplicaciones que pertenecen a los programas; sin embargo, algunos programas pueden requerir reinstalarse, por ejemplo, cuando los archivos compartidos se colocan fuera de un directorio de aplicación. [ 59 ]
- IBM AIX (una variante de Unix) utiliza un componente de registro llamado Object Data Manager (ODM). El ODM se utiliza para almacenar información sobre la configuración del sistema y los dispositivos. Un amplio conjunto de herramientas y utilidades proporciona a los usuarios los medios para ampliar, verificar y corregir la base de datos del ODM. El ODM almacena su información en varios archivos; la ubicación predeterminada es /etc/objrepos .
- El entorno de escritorio GNOME utiliza una interfaz similar a un registro llamada dconf para almacenar la configuración del escritorio y las aplicaciones.
- La iniciativa Elektra proporciona sistemas de gestión de archivos alternativos para distintos archivos de configuración de texto.
- Aunque no es un sistema operativo, la capa de compatibilidad de Wine , que permite que el software de Windows se ejecute en un sistema similar a Unix, también emplea un registro similar al de Windows como archivos de texto en la carpeta WINEPREFIX : system.reg ( HKEY_LOCAL_MACHINE ), user.reg ( HKEY_CURRENT_USER ) y userdef.reg . [ 62 ] El formato es prácticamente el mismo que el de los archivos .REG de Windows , excepto que la línea de encabezado se cambia a "WINE REGISTRY Versión 2" y las rutas (claves) no comienzan con el nombre del hive.
Véase también
- Limpiador de registro
- Logparser : consulta de varios tipos de archivos de registro similar a SQL.
- Lista de identificadores de superposición de iconos de shell
- CryptoLocker : un programa de ransomware que manipula el registro.
Notas
- ↑ Cuando las aplicaciones no se ejecutan porque solicitan más privilegios de los que necesitan (y se les niegan esos privilegios), esto se conoce como un error de aplicación de usuario limitado (LUA, por sus siglas en inglés).
Notas a pie de página
- ↑ Esposito, Dino (noviembre de 2000). "Registro de Windows 2000: Las últimas características y API brindan la capacidad de personalizar y extender sus aplicaciones" . Revista MSDN . Microsoft. Archivado del original el 15 de abril de 2003. Recuperado el 19 de julio de 2007 .
- 1 2 3 "El registro del sistema" .
- ↑ "Componentes de arquitectura de Windows 95" . www.microsoft.com . Archivado del original el 7 de febrero de 2008. Consultado el 29 de abril de 2008. La
siguiente tabla muestra otras dificultades o limitaciones causadas por el uso de archivos .INI que se superan mediante el uso del Registro.
- ↑ Hipson 2002 , pág. 5, 41–43.
- ^ Richter, Jeffrey; Nasarre, Christophe (2008). Windows a través de C/C++ (Quinta ed.). Prensa de Microsoft . ISBN 9780735642461Consultado el 28 de agosto de 2021 .
- ↑ Raymond Chen , "¿Por qué las claves del registro tienen un valor predeterminado?"
- ↑ Hipson 2002 , págs. 207, 513–514.
- ↑ Hipson 2002 , págs. 520–521.
- ↑ Hipson 2002 , pág. 7.
- ↑ "Diseñado para la especificación de aplicaciones de Windows XP" . Microsoft . 20 de agosto de 2002. Consultado el 8 de abril de 2009 .
- ↑ "HKEY_LOCAL_MACHINE" . Gautam. 2009. Consultado el 8 de abril de 2009 .
- ↑ "Claves del registro afectadas por WOW64 (Windows)" . Msdn.microsoft.com . Consultado el 10 de abril de 2014 .
- ↑ "Descripción del registro de Microsoft Windows" . Consultado el 25 de septiembre de 2008 .
- ↑ "HKEY_CURRENT_USER" . Microsoft . 2009. Consultado el 8 de abril de 2009 .
- ↑ "Descripción de la clave de registro HKEY_DYN_DATA en Windows 95, Windows 98 y Windows 98 SE" . support.microsoft.com .
- ↑ "Un vistazo más de cerca a HKEY_DYN_DATA" . rinet.ru . Archivado del original el 9 de mayo de 2008.
- ↑ "Colmenas de registro" . Consultado el 19 de julio de 2007 .
- ↑ Chen, Raymond (8 de agosto de 2011). "¿Por qué se llama "colmena" a un archivo de registro?" . The Old New Thing . Consultado el 29 de julio de 2011 .
- ↑ "Descripción general del Registro de Windows NT" . Consultado el 2 de diciembre de 2011 .
- ↑ "Dentro del Registro" . Consultado el 28 de diciembre de 2007 .
- 1 2 Norris, Peter (febrero de 2009). "La estructura interna del registro de Windows" (PDF) . Universidad de Cranfield. Archivado del original (PDF) el 29 de mayo de 2009.
- ↑ "Iconos incorrectos mostrados para archivos .ico" . 15 de noviembre de 2009. Consultado el 31 de marzo de 2012 .
- ↑ Gupta, Vishal (26 de agosto de 2011). "¿Cómo desinstalar/eliminar completamente un programa de software en Windows sin usar software de terceros? - AskVG" . www.askvg.com .
- ↑ "Es posible que reciba un mensaje de error "STOP 0x00000035 NO_MORE_IRP_STACK_LOCATIONS" al intentar iniciar sesión en un dominio" . 9 de octubre de 2011. Consultado el 31 de marzo de 2012 .Esta página le indica al usuario que edite el registro para solucionar el problema.
- ↑ El cambio de nombre de clave se implementa como eliminación y adición, conservando las subclaves/valores, ya que las API subyacentes no admiten la función de cambio de nombre directamente.
- 1 2 3 4 5 "Cómo agregar, modificar o eliminar subclaves y valores del registro mediante un archivo .reg" . support.microsoft.com .
- 1 2 "Por qué el Registro de Windows es un desastre... técnicamente" . Richard WM Jones . 18 de febrero de 2010.
- ↑ "Aplicar directiva de grupo" . Microsoft.
- 1 2 3 Payette, Bruce; Siddaway, Richard (2018). Windows PowerShell en acción (Tercera ed.). Manning Publications . págs. 7–8 , 24, 608, 708–710 . ISBN 9781633430297Consultado el 28 de agosto de 2021 .
- ↑ Warner, Timothy L. ( mayo de 2015). Windows PowerShell en 24 horas, Sams Teach Yourself . Sams Publishing . pág. 19 , 211. ISBN 9780134049359Consultado el 28 de agosto de 2021 .
- ↑ "Lectura y escritura de valores de registro con Visual Basic" . Consultado el 19 de julio de 2007 .
- ↑ "Comando REG en Windows XP" . Consultado el 19 de julio de 2007 .
- ↑ "Página del manual de registro – Paquetes Tcl incluidos" . www.tcl.tk. Consultado el 14 de diciembre de 2017 .
- ↑ "Biblioteca de registro sin conexión" . Consultado el 4 de junio de 2014 .
- ↑ "Función DllInstall" . Microsoft . 7 de marzo de 2012. Consultado el 22 de marzo de 2012 .
- ↑ "Regsvr32" . Microsoft . Consultado el 22 de marzo de 2012 .
- ↑ "Cómo: Registrar servidores de automatización" . Microsoft . Consultado el 22 de marzo de 2012 .
- ↑ "Cómo volver a registrar PowerPoint 2000, PowerPoint 2003, PowerPoint 2007 y PowerPoint 2010" . Microsoft . Enero de 2012. Consultado el 22 de marzo de 2012 .
- ↑ "Función RegNotifyChangeKeyValue" . Microsoft.
- ↑ "Registro para recibir notificaciones" . Microsoft.
- ↑ "Función RegConnectRegistry" . Microsoft.
- ↑ "Cómo administrar el acceso remoto al Registro" . Microsoft.
- ↑ Gibson, Darril (28 de junio de 2011). «Capítulo 4: Protección del acceso mediante permisos». Seguridad de Microsoft Windows : aspectos esenciales . Indianápolis, Indiana: Wiley. ISBN 978-1-118-01684-8.
- ↑ "Compatibilidad de aplicaciones: Protección de recursos de Windows (WRP)" . Microsoft . Consultado el 8 de agosto de 2012 .
- ↑ Marc Silbey, Peter Brundrett. "Comprender y trabajar en el modo protegido de Internet Explorer" . Consultado el 8 de agosto de 2012 .
- ↑ "RegDelNull v1.1" . 1 de noviembre de 2006. Consultado el 8 de agosto de 2012 .
- ↑ "No se pueden eliminar ciertas claves del registro: error al eliminar la clave" . 23 de marzo de 2010. Consultado el 8 de agosto de 2012 .Página de soporte de Microsoft.
- ↑ "Descripción de la herramienta de comprobación del registro de Windows (Scanreg.exe)" .
- ↑ "Opciones de línea de comandos para la herramienta de comprobación del registro" .
- ↑ "Cómo hacer copias de seguridad, editar y restaurar el registro en Windows NT 4.0" . support.microsoft.com .
- ↑ "Referencia técnica del Registro: Recursos relacionados" . Microsoft . Consultado el 9 de septiembre de 2011 .
- ↑ Whitwam, Ryan (julio de 2019). "Microsoft elimina las copias de seguridad automáticas del registro en Windows 10" . ExtremeTech . Consultado el 1 de julio de 2019 .
- ↑ "Cómo funciona la directiva de grupo principal" . Microsoft . 2 de septiembre de 2009. Consultado el 13 de agosto de 2012 .
- ↑ "Capítulo 26 – Archivos de inicialización y el Registro" . Microsoft . Consultado el 3 de marzo de 2008 .
- ↑ "Microsoft Application Compatibility Toolkit 5.0" . Microsoft . Consultado el 26 de julio de 2008 .
- 1 2 Ionescu, Mark Russinovich, David A. Solomon, Alex (2012). "Registry Internals". Windows internals (6.ª ed.). Redmond, Wash.: Microsoft Press. ISBN 978-0-7356-4873-9.
{{cite book}}: CS1 maint: varios nombres: lista de autores ( enlace ) - ↑ "Especificación del directorio base XDG" . standards.freedesktop.org .
- ↑ "Directorios de aplicaciones" . Archivado del original el 27 de mayo de 2012. Consultado el 17 de mayo de 2012 .
- 1 2 "Estudios de caso de las 132 principales molestias con sistemas operativos distintos de RISC OS" . Consultado el 3 de abril de 2012 .Página del sitio web riscos.com. Mencionada en los puntos 82 y 104.
- ↑ "Recorrido por RISC OS" . Consultado el 19 de julio de 2007 .
- ↑ "Directorio de productos RISC OS" . 2 de noviembre de 2006. Consultado el 1 de abril de 2012 .
{{cite web}}: CS1 maint: servicio de archivado obsoleto ( enlace ) - ↑ 3.2. Uso del Registro y Regedit (Guía del usuario de Wine)
Referencias
- Hipson, Peter (2002). Dominando el Registro de Windows XP . Wiley . ISBN 0-7821-2987-0Consultado el 28 de agosto de 2021 .
- Russinovich, Mark E.; Solomon, David A. (2005). Microsoft Windows Internals (Cuarta ed.). Microsoft Press . págs. 183–236 . ISBN 978-0-7356-1917-3.
Enlaces externos
- Información y referencia del Registro de Windows en la Biblioteca MSDN.
- Componentes de Windows
- Archivos de configuración