Loading AI tools
base de datos jerárquica que almacena los ajustes de configuración y opciones en los sistemas operativos Microsoft Windows De Wikipedia, la enciclopedia libre
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. Contiene la configuración de los componentes de bajo nivel del sistema operativo, así como de las aplicaciones que hay funcionando en la plataforma: hacen uso del registro el núcleo (kernel, en inglés), los controladores de dispositivos, los servicios, el SAM, la interfaz de usuario y las aplicaciones de terceros. El registro también proporciona un medio de acceso a los contadores para generar un perfil del rendimiento del sistema.
Cuando se introdujo por primera vez con Windows 3.1, el propósito fundamental del registro de Windows era almacenar información sobre la configuración de componentes basados en COM. Con la introducción de Windows 95 y Windows NT, su utilización se extendió para ordenar la profusión de archivos INI de cada programa, los cuales se habían utilizado anteriormente para almacenar los ajustes de configuración de los programas basados en Windows.[1][2] Las aplicaciones portátiles normalmente no escriben los datos relativos a la configuración en el registro de Windows, sino que guardan los datos de configuración en archivos ubicados dentro de un único directorio desde el cual se ejecuta la aplicación.
El sistema de registros de Windows es una interfaz operativa que provee Windows como un recurso muy útil para guardar las configuraciones del usuario, guardar rutas de acceso para archivos o carpetas y mantener un respaldo de los drivers utilizados para el hardware del equipo, así como ajustes básicos del equipo, Datos sobre qué aplicaciones están instaladas, sus configuraciones, los archivos que pueden crear y con qué programa abrir cada tipo.
El Registro contiene información que Windows utiliza como referencia continuamente, por ejemplo, los perfiles de los usuarios, las aplicaciones instaladas en el equipo y los tipos de documentos que cada aplicación puede crear, las configuraciones de las hojas de propiedades para carpetas y los iconos de aplicaciones, los elementos de hardware que hay en el sistema y los puertos que se están utilizando.
Es recomendable no cambiar valores en este registro a menos que se tengan conocimientos avanzados del sistema, ni tampoco si no sabe cómo devolver el registro a un punto de recuperación, ya que puede causar problemas de rendimiento, corrupción de archivos, o incluso impedir el arranque o actualización del sistema.
Antes de la existencia del registro, los archivos.INI almacenaban los ajustes de cada programa en un archivo de texto, a menudo en una ubicación compartida que no permitía ajustes específicos para cada usuario en entornos de múltiples usuarios. Por el contrario, el registro de Windows almacena todos los ajustes de las aplicaciones en un solo repositorio lógico (con un número pequeño de archivos) y de forma estandarizada. Según Microsoft, este sistema ofrece varias ventajas sobre los archivos INI. Como el análisis de archivos se realiza de forma mucho más eficiente con el formato binario, se puede leer o escribir en él más rápidamente que en un archivo INI. Así mismo, los datos fuertemente tipados se pueden almacenar en el registro, lo que no ocurría con la información de texto almacenada en los archivos INI.[3] Esto es una ventaja cuando se editan las claves manualmente usando regedit, el editor integrado para el registro de Windows. Dado que los ajustes del registro específicos para un usuario se cargan desde una ruta concreta para ese usuario, en lugar de hacerlo desde una ubicación de solo lectura del sistema, el registro permite que varios usuarios compartan el mismo equipo, y también permite que los programas funcionen para usuarios con menos privilegios. Además se han simplificado las copias de seguridad y la restauración, ya que es posible acceder al registro a través de una conexión de red para realizar labores de soporte y mantenimiento remotas, o incluso desde scripts usando el conjunto estándar de API, siempre y cuando el servicio de registro remoto esté funcionando y las reglas del cortafuegos lo permitan.
El registro dispone de características que mejoran la integridad del sistema, ya que está diseñado como una base de datos y cuenta con funciones parecidas a las de las bases de datos, como actualizaciones atomizadas. Si dos procesos intentan actualizar a la vez el mismo valor del registro, un cambio del proceso siempre precederá al otro y la coherencia general de los datos se mantendrá. Cuando se hacen cambios en los archivos INI, como en la condición de carrera, se pueden producir datos incoherentes que no coincidan con ninguna de las actualizaciones que se pretendían. Tanto Windows Vista como los sistemas operativos posteriores, proporcionan actualizaciones transaccionales del registro por medio del Administrador de transacciones de núcleo[necesita atribución], extendiendo las garantías que proporciona la atomicidad a múltiples cambios en las claves y valores, con la semántica commit-abort tradicional. (Nótese, sin embargo, que el NTFS proporciona el mismo soporte sistema de archivos, por lo que, en teoría, se podrían obtener las mismas garantías con los archivos de configuración tradicionales.)
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):
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 3, en el cual las claves de registro no podían contener pares de nombres/datos, sino que contenían únicamente un valor sin nombre (que tenía que ser una cadena). En este sentido, todo el registro era como un único vector asociativo en el que las claves de registro (tanto en el sentido de registro como en el del diccionario) formaban una jerarquía, y los valores del registro eran todos cadenas. Cuando se creó el registro de 32 bits, también se creó la capacidad adicional de crear múltiples valores con nombre por clave y, de algún modo, se distorsionó el significado de los nombres.[4] Para mantener la compatibilidad con el comportamiento anterior, todas las claves de registro pueden tener un valor "por defecto", cuyo nombre es la cadena vacía.
Cada valor puede almacenar datos arbitrarios de longitud y codificado variables, pero asociados a un tipo simbólico de datos (definido como una constante numérica) que expresa cómo analizar estos datos. Los tipos estándar son:
Nombre | Nombre de tipo simbólico de datos | Significado y codificación de los datos almacenados en el valor de registro |
---|---|---|
0 | REG_NONE | Datos sin ningún tipo (en todo caso, el valor almacenado) |
1 | REG_SZ | Valor de cadena, normalmente almacenado y mostrado en UTF-16LE (cuando se utiliza la versión Unicode de las funciones API de Win32), que generalmente termina con un carácter nulo |
2 | REG_EXPAND_SZ | Valor de cadena "expandible" que puede contener variables de entorno, normalmente almacenado y mostrado en UTF-16LE, que generalmente termina con un carácter nulo |
3 | REG_BINARY | Datos binarios (cualquier dato arbitrario) |
4 | REG_DWORD / REG_DWORD_LITTLE_ENDIAN | Valor DWORD, número entero no negativo de 32 bits (números entre el 0 y el 4.294.967.295 [232 – 1]) (little-endian) |
5 | REG_DWORD_BIG_ENDIAN | Valor DWORD, número entero no negativo de 32 bits (números entre el 0 y el 4.294.967.295 [232 – 1]) (big-endian) |
6 | REG_LINK | Enlace simbólico (UNICODE) a otra clave de registro, especificando una clave raíz y la ruta a la clave objetivo |
7 | REG_MULTI_SZ | Valor de cadena múltiple, que generalmente es una lista ordenada de cadenas no vacías, normalmente almacenadas y mostradas en UTF-16LE, cada una de ellas terminada en un carácter nulo, y la lista normalmente también termina con un carácter nulo. |
8 | REG_RESOURCE_LIST | Lista de recursos (usada por la enumeración y configuración del hardware Plug-n-Play) |
9 | REG_FULL_RESOURCE_DESCRIPTOR | Descriptor de recursos (usado por la enumeración y configuración del hardware Plug-n-Play) |
10 | REG_RESOURCE_REQUIREMENTS_LIST | Lista de requisitos de recursos (usada por la enumeración y configuración del hardware Plug-n-Play) |
11 | REG_QWORD / REG_QWORD_LITTLE_ENDIAN | Valor QWORD, número entero de 64 bits (puede ser big-endian o little-endian, o sin especificar). (Introducido en Windows XP) |
El registro comprende varias secciones lógicas o «subárboles»[5] (la palabra inglesa para subárbol, «hive», es un chiste interno).[6] Los subárboles normalmente se nombran según las definiciones de sus API de Windows, las cuales empiezan siempre por «HKEY». Con frecuencia se abrevian en un nombre de tres o cuatro letras que empieza con «HK» (p. ej., HKCU y ). Técnicamente, se trata de indicadores predefinidos (con valores constantes predefinidos) para claves específicas que se mantienen en la memoria o se almacenan en archivos de subárbol almacenados en el sistema de archivos local y cargados por el núcleo del sistema en el tiempo de arranque, y a continuación se comparten (con varios derechos de acceso) entre todos los procesos que se están ejecutando en el sistema local, o cargados y asignados en todos los procesos iniciados en una sesión de usuario cuando el usuario accede al sistema. Los nodos HKEY_LOCAL_MACHINE (datos de configuración local específicos del equipo) y HKEY_CURRENT_USER (datos de configuración específicos del usuario) tienen una estructura similar entre sí; las aplicaciones del usuario normalmente buscan su configuración buscándolos primero en «HKEY_CURRENT_USER\Software\Vendor's name\Application's name\Version\Setting name», y si no se encuentra la configuración, miran en la misma ubicación, en la clave HKEY_LOCAL_MACHINE [necesita cita]. Sin embargo, se puede aplicar lo opuesto en configuraciones de directivas aplicadas por el administrador, en las que el HKLM puede estar por encima del HKCU. El programa del logotipo de Windows tiene requisitos específicos sobre dónde se pueden almacenar los distintos tipos de datos de usuario para que se siga el principio del privilegio mínimo, de forma que no se necesite acceso a nivel de administrador para usar una aplicación.[7]
HKEY_LOCAL_MACHINE, abreviado como HKLM, almacena configuraciones específicas del equipo local.[8]
Las claves ubicadas como HKLM realmente no se almacena en el disciones NT de Windows]], esta clave contiene cuatro subclaves: «SAM», «SECURITY», «SYSTEM» y «SOFTWARE», las cuales se cargan en el tiempo de arranque en sus respectivos archivos ubicados en la carpeta %SystemRoot%\System32\config. Hay una quinta subclave, «HARDWARE», que es volátil y se crea dinámicamente y, como tal, no se almacena en un archivo (muestra una vista de todos los dispositivos Plug-and-Play detectados en ese momento). En Windows Vista y versiones superiores, el núcleo asigna una sexta subclave en la memoria y se llena con datos de la configuración de arranque (BCD).
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.[10] 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, 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, abreviado como HKCU, almacena configuraciones específicas del usuario con sesión iniciada en esos momentos.[10] 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.
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).
Esta clave se usa solo en Windows 95, Windows 98 y Windows Me.[11] Contiene información sobre dispositivos de hardware, incluyendo estadísticas de rendimiento de Plug and Play y de red. La información contenida en este subárbol tampoco se almacena en el disco duro. La información sobre Plug and Play se recoge y configura en el inicio, y se almacena en la memoria.lml.[12]
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[13] 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.[14] 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.[15] 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.[15] 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:
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:
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[17]
Los archivos.REG (también conocidos como entradas de registro) son archivos legibles de texto para importar y exportar partes del registro. En Windows 2000 y sistemas operativos posteriores basados en NT, contienen la cadena Windows Registry Editor Version 5.00 al principio, y se basan en Unicode. En sistemas Windows 9x y NT 4.0, contienen la cadena REGEDIT4 y se basan en ANSI.[18] El formato de los archivos.REG de Windows 9x es compatible con Windows 2000 y sistemas posteriores basados en NT. El Editor de registro de Windows para estos sistemas también admite la exportación de archivos.REG en formato Windows 9x/NT. Los datos se almacenan en archivos.REG con la siguiente sintaxis:[19]
[<Hive Name>\<Key Name>\<Subkey Name>]
"Value Name"=<Value type>:<Value data>
Se puede editar el valor predeterminado de una clave usando @ en lugar de "Value Name":
[<Hive Name>\<Key Name>\<Subkey Name>]
@=<Value type>:<Value data>
Los valores de cadena no requieren un <Value type> (ver ejemplo), pero backslashes ("\") necesita ser escrita como una doble barra invertida ("\ \") Por ejemplo, para añadir los valores "Value A", "Value B", "Value C", "Value D", "Value E", "Value F", "Value G", "Value H", "Value I", "Value J", and "Value K" a la clave HKLM\SOFTWARE\Microsoft,
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft]
"Value A"="<String value data>"
"Value B"=hex:<Binary data (as comma-delimited list of hexadecimal values)>
"Value C"=dword:<DWORD value integer>
"Value D"=hex(7):<Multi-string value data (as comma-delimited list of hexadecimal values)>
"Value E"=hex(2):<Expandable string value data (as comma-delimited list of hexadecimal values)>
"Value F"=hex(b):<QWORD value (as comma-delimited list of 8 hexadecimal values, in little endian byte order)>
"Value G"=hex(4):<DWORD value (as comma-delimited list of 4 hexadecimal values, in little endian byte order)>
"Value H"=hex(5):<DWORD value (as comma-delimited list of 4 hexadecimal values, in big endian byte order)>
"Value I"=hex(8):<REG_RESOURCE_LIST (as comma-delimited list of hexadecimal values)>
"Value J"=hex(a):<REG_RESOURCE_REQUIREMENTS_LIST (as comma-delimited list of hexadecimal values)>
"Value K"=hex(0):
Los datos de archivos.REG se pueden añadir o fusionar con el registro haciendo doble clic sobre esos archivos o usando el modificador /s en la línea de comandos. Los archivos.REG también se pueden utilizar para eliminar datos del registro. Para eliminar una clave (y todas las subclaves, valores y datos), el nombre de la clave debe estar precedida por el signo menos ("-").[18]
Por ejemplo, para eliminar la clave HKLM\SOFTWARE\Microsoft (y todas las subclaves, valores y datos),
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft]
Para eliminar un valor (y sus datos), los valores que se van a eliminar deben tener un signo menos ("-") después del signo igual ("=").[18]
Por ejemplo, para eliminar únicamente los valores del "Value A" and "Value B" (y sus datos) de la clave HKLM\SOFTWARE\Microsoft,
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft]
"Value A"=-
"Value B"=-
"Value A"=- "Value B"=- Para eliminar únicamente el valor (predeterminado) de la clave HKLM\SOFTWARE\Microsoft (y sus datos),
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft]
@=-
Las líneas que comienzan con un punto y coma se consideran comentarios:
; This is a comment. This can be placed in any part of a .reg file
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft]
"Value"="Example string"
Se puede manipular el registro de varias formas desde la línea de comandos. Las utilidades Reg.exe
y RegIni.exe
están incluidas en Windows XP y en las versiones posteriores de Windows. Otras ubicaciones posibles en versiones antiguas de Windows pueden ser los CD del kit de recursos o el CD de instalación original de Windows.
Además, se puede importar un archivo .REG
desde la línea de comandos mediante el siguiente comando:
RegEdit.exe /s file
La /s significa que el archivo se fusionará silenciosamente con el registro. Si se omite el parámetro /s
se le pedirá al usuario que confirme la operación. En Windows 98, Windows 95 y algunas configuraciones de Windows XP, el modificador /s
también hace que RegEdit.exe
ignore los ajustes del registro que permite que los administradores lo deshabiliten. Cuando se utiliza el modificador /s RegEdit.exe
no devuelve un código de retorno adecuado si la operación falla, al contrario que Reg.exe, que sí lo hace.
RegEdit.exe /e file
exporta todo el registro a un archivo .REG
, mientras que cualquiera estos
RegEdit.exe /e file HKEY_CLASSES_ROOT[\<key>]
exporta únicamente la clave o subclave especificada.
La asociación predeterminada para los archivos
RegEdit.exe /e file HKEY_CURRENT_CONFIG[\<key>]
RegEdit.exe /e file HKEY_CURRENT_USER[\<key>]
RegEdit.exe /e file HKEY_LOCAL_MACHINE[\<key>]
RegEdit.exe /e file HKEY_USERS[\<key>]
.REG
en muchas versiones de Microsoft Windows.
También se puede utilizar Reg.exe
. Éste es un ejemplo para mostrar la versión del valor del registro:
Version
Reg.exe QUERY HKLM\Software\Microsoft\ResKit /v Version
Otras opciones de línea de comandos incluyen un VBScript o un JScript junto con un CScript, WMI o WMIC.exe y Windows PowerShell.
Los permisos del registro se pueden manipular a través de la línea de comando usando RegIni.exe y la herramienta SubInACL.exe. Por ejemplo, los permisos para la clave HKEY_LOCAL_MACHINE\SOFTWARE se pueden mostrar usando:
SubInACL.exe /keyreg HKEY_LOCAL_MACHINE\SOFTWARE /display
El registro puede editarse mediante las API de la biblioteca avanzada API de Windows 32 (advapi32.dll).[19]
Lista de las funciones API del registro | |||
---|---|---|---|
RegCloseKey | RegOpenKey | RegConnectRegistry | RegOpenKeyEx |
RegCreateKey | RegQueryInfoKey | RegCreateKeyEx | RegQueryMultipleValues |
RegDeleteKey | RegQueryValue | RegDeleteValue | RegQueryValueEx |
RegEnumKey | RegReplaceKey | RegEnumKeyEx | RegRestoreKey |
RegEnumValue | RegSaveKey | RegFlushKey | RegSetKeySecurity |
RegGetKeySecurity | RegSetValue | RegLoadKey | RegSetValueEx |
RegNotifyChangeKeyValue | RegUnLoadKey |
Muchos lenguajes de programación ofrecen clases o funciones integradas de biblioteca en tiempo de ejecución que rodean las API de Windows subyacentes, permitiendo de este modo que los programas almacenen configuraciones en el registro (p. ej., 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 WScript.Shell
. Otro método es usar la herramienta del kit de recursos de Windows, Reg.exe
, ejecutándola desde el código,[20] aunque esto se considera un estilo de programación muy pobre.
Análogamente, los lenguajes para scrips como Perl (con Win32::TieRegistry
), Windows Powershell y Windows Scripting Host también posibilitan la edición del registro desde scripts.
Antes de la introducción del COM de registro libre, se animaba a los desarrolladores a que añadieran código de inicialización a los códigos binarios in-process y out-of-process para realizar la configuración requerida para que funcionara ese objeto. Para binarios in-process como los archivos de tipo.DLL y.OCX, normalmente los módulos exportaban una función denominada DllInstall()[21] que podía ser llamada por los programas de instalación o ser invocada manualmente con utilidades como Regsvr32.exe;[22] los binarios out-of-process normalmente eran compatibles con los argumentos de la línea de comandos /Regserver y /Unregserver que creaban o eliminaban la configuración del registro requerida.[23] Las aplicaciones COM que se dañan debido a problemas del infierno de las DLL habitualmente se pueden reparar con RegSvr32.exe o con el conmutador /RegServer sin tener que volver a invocar los programas de instalación.[24]
Windows muestra las API que permiten que las aplicaciones de modo de usuario se registren para recibir un evento de notificación si se cambia una clave de RegConnectRegistry
.[25] Las API también están disponibles para permitir que las aplicaciones de modo núcleo filtren y modifiquen las llamadas al registro hechas por otras aplicaciones.[26]
Además, Windows admite el acceso remoto al registro de otro equipo a través de la función RegConnectRegistry[27] si el servicio Registro remoto se está ejecutando, está correctamente configurado y su tráfico de red no está protegido por cortafuegos
El registro se almacena físicamente en varios archivos, generalmente ocultos de los API de modo de usuario utilizados para manipular datos del interior del registro. Dependiendo de la versión de Windows, habrá diferentes archivos y diferentes ubicaciones para dichos archivos, pero todos ellos se encuentran en el equipo local. La ubicación de los archivos de registro del sistema en Windows NT es \Windows\System32\Config; el subárbol de registro específico del usuario HKEY_CURRENT_USER se almacena en Ntuser.dat dentro del perfil del usuario. Hay uno para cada usuario; si un usuario tiene un perfil móvil, entonces dicho archivo se copiará desde y al servidor al iniciar sesión y al cerrar sesión respectivamente. Un segundo archivo de registro específico del usuario llamado UsrClass.dat contiene entradas de registro COM y por defecto no es móvil.
Los sistemas basados en Windows NT almacenan el registro en un formato de subárbol binario que puede ser exportado, cargado y descargado por el editor de registro de estos sistemas operativos. Los siguientes archivos de registro del sistema se almacenan en %SystemRoot%\System32\Config\:
El siguiente archivo se almacena en la carpeta del perfil de cada usuario:
Para Windows 2000, Server 2003 y Windows XP, el siguiente archivo adicional, específico para cada usuario, se usa para asociaciones entre archivos e información COM:
Para Windows Vista y posteriores, la ruta se cambió a:
Windows 2000 guardaba una copia alternativa de los subárboles del registro (.ALT) e intentaba cambiar a ella cuando detectaba daños.[29] Windows XP y Windows Server 2003 no guardan un subárbol System.alt porque NTLDR en esas versiones de Windows puede procesar el archivo System.log para actualizar un subárbol de sistema que se ha vuelto incloherente durante un apagado o un bloqueo. 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 del primer inicio correcto de Windows.
Los archivos de registro están almacenados en el directorio %WINDIR% con los nombres USER.DAT y SYSTEM.DAT añadiéndose a ellos CLASSES.DAT en Windows Me. Además, cada perfil de usuario (si están activados los perfiles) tiene su propio archivo USER.DAT, ubicado en el directorio del perfil del usuario en %WINDIR%\Profiles\<username>\.
El único archivo de registro se llama REG.DAT y se almacena en el directorio %WINDIR%.
A lo largo de los años, las distintas ediciones de Windows han utilizado diversos métodos para hacer copias de seguridad y restaurar el registro, algunas de las cuales están obsoletas hoy en día:
RDISK.EXE
, una utilidad para hacer copia de seguridad y restaurar todo el registro.[30]Windows 2000 y las versiones posteriores de Windows usan directivas de grupo para aplicar la configuración del registro. La directiva puede ser aplicada localmente a un único equipo usando gpedit.msc, o a varios usuarios y equipos dentro de un dominio usando gpmc.msc.
Con Windows 95, Windows 98, Windows Me y Windows NT, los administradores pueden usar un archivo especial y fusionarlo con el registro. Este archivo se llama archivo de directiva (POLICY.POL). El archivo de directiva permite que los administradores impidan a los usuarios sin privilegios de administrador cambiar las configuraciones del registro, por ejemplo el nivel de seguridad de Internet Explorer o el fondo de pantalla. El archivo de directiva se usa principalmente en los negocios con un gran número de equipos, en los que el negocio necesita protegerse de usuarios malintencionados o descuidados. La extensión predeterminada del archivo de directiva es .POL. El archivo de directiva filtra las configuraciones que aplica por usuario y por grupo (un "grupo" es un conjunto definido de usuarios). Para hacerlo, el archivo de directiva se fusiona con el registro, impidiendo que los usuarios lo esquiven volviendo a cambiar la configuración. El archivo de directiva normalmente se distribuye a través de una red LAN, pero puede introducirse en un equipo local. El archivo de directiva está creado por una herramienta gratuita de Microsoft denominada poledit.exe, válida para Windows 95/Windows 98, y con un módulo de administración del equipo para sistemas basados en NT. El editor necesita permisos de administrador para ejecutarse en los sistemas que usan permisos. El editor también puede cambiar 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 cambiar el registro de ese equipo. El editor de directivas carga la configuración que puede cambiar desde archivos .ADM, uno de los cuales está incluido, que contienen la configuración que proporciona el shell de Windows. El archivo .ADM es de texto sin formato y admite fácil localización, al permitir que todas las cadenas se almacenen en un lugar.
Los núcleos de Windows NT admiten el redireccionamiento de las API relacionadas con archivos INI a un archivo virtual en una ubicación de registro como HKEY_CURRENT_USER utilizando una función llamada "InifileMapping".[32] Esta funcionalidad fue introducida para permitir que las aplicaciones antiguas escritas para versiones de Windows de 16 bits funcionaran en plataformas Windows NT, en las cuales la carpeta Sistema ya no está considerada como una ubicación adecuada para datos o configuraciones específicas de un usuario. Las aplicaciones de 32 bits no compatibles también pueden ser redireccionadas de esta forma, incluso aunque la función se pensara originalmente para aplicaciones de 16 bits.
Windows Vista ha introducido una virtualización del registro limitada, por lo que las aplicaciones escritas incorrectamente que no respetan el principio del privilegio mínimo y en su lugar tratan de escribir datos de usuario en una ubicación de solo lectura (como el subárbol HKEY_LOCAL_MACHINE), pueden ser redireccionadas a una ubicación más adecuada sin cambiar dicha aplicación. La operación es transparente para la aplicación, ya que ésta no sabe que sus operaciones de registro se han dirigido a otro lugar.
Análogamente, la virtualización de la aplicación redirige todas las operaciones de registro de una aplicación a una ubicación distinta al registro, como puede ser un archivo. Utilizado junto con la virtualización del archivo, este enfoque permite que las aplicaciones se ejecuten sin instalarlas en el equipo de la ubicación.
Los procesos de baja integridad también pueden utilizar la virtualización del registro. Por ejemplo, cuando Internet Explorer 7 y 8 funcionan en "modo protegido" en Windows Vista y superiores, automáticamente redirigirá la escritura del registro por parte de controles ActiveX a una ubicación en un espacio aislado (sandbox), para frustrar algunos tipos de vulnerabilidades de seguridad.
Por último, el Kit de herramientas de compatibilidad de aplicaciones proporciona correcciones de compatibilidad (shims) que pueden redirigir de forma transparente operaciones HKEY_LOCAL_MACHINE o HKEY_CLASSES_ROOT del registro a HKEY_CURRENT_USER para abordar errores "LUA" que causan que las aplicaciones no funcionen para usuarios limitados.
A diferencia del modelo de base de datos binario del registro de Windows, algunos sistemas operativos usan archivos separados de texto sin formato para el proceso daemon y la configuración de la aplicación, pero agrupan estas configuraciones para facilitar su administración.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.