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 utilizar el registro. El núcleo , los controladores de dispositivos , los servicios , el Administrador de cuentas de seguridad y las interfaces de usuario pueden utilizar el registro. El registro también permite el acceso a los contadores para generar perfiles del rendimiento del sistema.
En otras palabras, el registro o Registro de Windows contiene información, configuraciones, opciones y otros valores de 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 para las aplicaciones de Windows utilizar el Registro de Windows. Por ejemplo, las aplicaciones .NET Framework utilizan archivos XML para la configuración, mientras que las aplicaciones portátiles suelen mantener sus archivos de configuración con sus ejecutables .
Antes del Registro de Windows, los archivos .INI almacenaban la configuración de cada programa como un archivo de texto o archivo binario , a menudo ubicado en una ubicación compartida que no proporcionaba configuraciones específicas del usuario en un escenario de múltiples usuarios. Por el contrario, el Registro de Windows almacena todas las configuraciones de la aplicación en un repositorio lógico (pero en una cantidad de archivos discretos) 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 manera mucho más eficiente con un formato binario, se puede leer o escribir en ellos más rápidamente que en un archivo INI de texto. Además, los datos fuertemente tipados se pueden almacenar en el registro, a diferencia de la información de texto almacenada en los archivos .INI. Esto es una ventaja cuando se editan claves manualmente utilizando regedit.exe
, el Editor del Registro de Windows integrado. Debido a que las configuraciones del registro basadas en el usuario se cargan 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 administración/soporte remoto, incluso desde scripts, utilizando el conjunto estándar de API , siempre que el servicio de Registro remoto se esté ejecutando y las reglas del firewall lo permitan.
Debido a que el registro es una base de datos, ofrece una integridad del sistema mejorada con características como actualizaciones atómicas . Si dos procesos intentan actualizar el mismo valor del registro al mismo tiempo, el cambio de un proceso precederá al del otro y se mantendrá la consistencia general de los datos. Cuando se realizan cambios en archivos .INI, dichas condiciones de carrera pueden dar como resultado datos inconsistentes que no coinciden con ninguna de las actualizaciones intentadas. Windows Vista y los sistemas operativos posteriores proporcionan actualizaciones transaccionales al registro por medio del Kernel Transaction Manager , extendiendo las garantías de atomicidad a través de múltiples cambios de clave o valor con semánticas tradicionales de confirmación-aborto. (Sin embargo, tenga en cuenta que NTFS también proporciona dicho soporte para el 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 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. Las claves se referencian con una sintaxis similar a los nombres de ruta de Windows, utilizando barras invertidas para indicar niveles de jerarquía. Las claves deben tener un nombre que no distinga entre mayúsculas y minúsculas y sin barras invertidas.
Solo se puede acceder a la jerarquía de claves de 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 núcleo desde una "colmena" almacenada, 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_LOCAL_MACHINE\Software\Microsoft\Windows 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]
Al igual que otros archivos y servicios de Windows, todas las claves de registro pueden estar restringidas por listas de control de acceso (ACL), según los privilegios de usuario, los tokens de seguridad adquiridos por las aplicaciones o las políticas de seguridad del sistema aplicadas por el sistema (estas restricciones pueden estar predefinidas por el propio sistema y configuradas por los administradores del sistema local o por los administradores del dominio). Es posible que distintos usuarios, programas, servicios o sistemas remotos solo vean algunas partes de la jerarquía o jerarquías distintas de las mismas claves raíz.
Los valores de registro son pares de nombre/datos almacenados dentro de claves. Los valores de registro se referencian por separado de las claves de registro. Cada valor de registro almacenado en una clave de registro tiene un nombre único cuyas mayúsculas y minúsculas no son importantes. Las funciones de la API de Windows que consultan y manipulan valores de registro toman los nombres de los valores por separado de la ruta de la clave o el identificador que identifica la clave principal. Los valores de registro pueden contener barras invertidas en sus nombres, pero al hacerlo, es difícil distinguirlos de sus rutas de clave cuando se utilizan algunas funciones de la API del Registro de Windows heredadas (cuyo uso está en desuso 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 remanente del registro de 16 bits en Windows 3, en el que las claves de registro no podían contener pares de nombre/datos arbitrarios, 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 creó la capacidad adicional de crear múltiples valores con nombre por clave, y los significados de los nombres se distorsionaron un poco. [6] Para 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án asociados a un tipo simbólico (definido como una constante numérica) que define cómo analizar estos datos. Los tipos estándar son: [7]
Las claves en el nivel raíz de la base de datos jerárquica generalmente se nombran por sus definiciones de API de Windows , que comienzan todas 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 la memoria o se almacenan en archivos de colmena almacenados en el sistema de archivos local y que el núcleo del sistema carga en el momento del arranque y luego se comparten (con varios derechos de acceso) entre todos los procesos que se ejecutan en el sistema local, o se cargan y asignan 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 entre sí; las aplicaciones de usuario normalmente buscan sus configuraciones buscándolas primero en "HKEY_CURRENT_USER\Software\Vendor's name\Application's name\Version\Setting name", y si no encuentran la configuración, buscan en la misma ubicación bajo la clave HKEY_LOCAL_MACHINE. Sin embargo, lo contrario puede aplicarse a las configuraciones de políticas 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 diferentes tipos de datos de usuario y que se siga el concepto de privilegio mínimo para que no se requiera acceso de nivel de administrador para usar una aplicación. [a] [10]
HKEY_LOCAL_MACHINE, abreviado como HKLM, almacena configuraciones específicas de la computadora local. [11]
La clave que encuentra HKLM no se almacena en el disco, sino que el núcleo del sistema la mantiene en la memoria para poder asignar todas las demás subclaves. Las aplicaciones no pueden crear ninguna subclave adicional. En Windows NT, esta clave contiene cuatro subclaves, "SAM", "SECURITY", "SYSTEM" y "SOFTWARE", que se cargan en el momento del arranque dentro de sus respectivos archivos ubicados en la carpeta %SystemRoot%\System32\config. Una quinta subclave, "HARDWARE", es volátil y se crea dinámicamente, y como tal no se almacena en un archivo (expone una vista de todos los dispositivos Plug-and-Play detectados actualmente). En Windows Vista y versiones posteriores, el núcleo asigna en la memoria una sexta y una séptima subclave, "COMPONENTS" y "BCD", a pedido, y las carga desde %SystemRoot%\system32\config\COMPONENTS o desde los datos de configuración de arranque, \boot\BCD en la partición del sistema.
Aunque el registro se presenta como una base de datos jerárquica integrada, las ramas del registro en realidad se almacenan en una serie de archivos de disco llamados colmenas . [17] (La palabra colmena constituye una broma interna ). [18]
Algunas subáreas son volátiles y no se almacenan en el disco. Un ejemplo de esto es la subárbol de la rama que comienza en HKLM\HARDWARE. Esta subárbol registra información sobre el hardware del sistema y se crea cada vez que el sistema se inicia y realiza la detección de hardware.
Las configuraciones individuales de los usuarios de un sistema se almacenan en una subárbol (archivo de disco) por usuario. Durante el inicio de sesión del usuario, el sistema carga el subárbol del usuario bajo la clave HKEY_USERS y establece la referencia simbólica HKCU (HKEY_CURRENT_USER) para que apunte al usuario actual. Esto permite que las aplicaciones almacenen o recuperen configuraciones para el usuario actual de manera implícita bajo la clave HKCU.
No todas las subáreas se cargan a la vez. En el momento del arranque, solo se carga un conjunto mínimo de subáreas y, después, las subáreas se cargan cuando se inicializa el sistema operativo y cuando los usuarios inician sesión o cuando una aplicación carga explícitamente una subáreas.
El registro se almacena físicamente en varios archivos, que generalmente están ocultos a las API de modo de usuario que se utilizan para manipular los datos dentro del registro. Según 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 %System Root%\System32\Config
; la sección del registro de usuario HKEY_CURRENT_USER específica del usuario se almacena dentro Ntuser.dat
del perfil de usuario. Hay uno de estos por usuario; si un usuario tiene un perfil móvil , este archivo se copiará hacia y desde un servidor al cerrar sesión e 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.
Los sistemas Windows NT almacenan el registro en un formato de archivo binario que puede ser exportado, cargado y descargado por el Editor del Registro en estos sistemas operativos. Los siguientes archivos del registro del sistema se almacenan en %SystemRoot%\System32\Config\
:
Sam
– HKEY_LOCAL_MACHINE\SAMSecurity
– HKEY_LOCAL_MACHINE\SECURITYSoftware
– HKEY_LOCAL_MACHINE\SOFTWARESystem
– HKEY_LOCAL_MACHINE\SYSTEMDefault
– HKEY_USERS\.DEFAULTUserdiff
– No está asociado con ninguna colmena. 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\< SID de usuario > (vinculado a 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\<SID del usuario>_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\<SID del usuario>_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 algún daño. [20] Windows XP y Windows Server 2003 no mantienen un System.alt
subárbol porque NTLDR en esas versiones de Windows puede procesar el System.log
archivo para actualizar un subárbol del sistema que se ha vuelto inconsistente durante un apagado o una falla. Además, la %SystemRoot%\Repair
carpeta contiene una copia de los subárboles del registro del sistema que se crearon después de la instalación y el primer inicio exitoso de Windows.
Cada archivo de datos de registro tiene un archivo asociado con una extensión ".log" que actúa como un registro de transacciones que se utiliza para garantizar que cualquier actualización interrumpida pueda completarse en el próximo inicio. [21] Internamente, los archivos de registro se dividen en "contenedores" de 4 kB que contienen colecciones de "celdas". [21]
Los archivos de registro se almacenan en el %WINDIR%
directorio con los nombres USER.DAT
y SYSTEM.DAT
con la adición de CLASSES.DAT
en Windows ME. Además, cada perfil de usuario (si los perfiles están habilitados) tiene su propio USER.DAT
archivo que se encuentra en el directorio de perfil del usuario en %WINDIR%\Profiles\<Username>\
.
Se llama al único archivo de registro REG.DAT
y se almacena en el %WINDIR%
directorio.
Para acceder a los archivos de registro, el dispositivo debe configurarse en un modo especial mediante:
Si alguno de los métodos anteriores funcionó, los archivos de registro del dispositivo se pueden encontrar en la siguiente ubicación:
{Teléfono}\EFIESP\Windows\System32\config
El registro contiene información de configuración importante para el sistema operativo, para las aplicaciones instaladas, así como configuraciones individuales para 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 eliminación. Si un usuario desea editar el registro manualmente, Microsoft recomienda que se realice una copia de seguridad del registro antes del 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 fallas causadas por referencias a programas faltantes, el usuario podría tener que verificar manualmente los directorios internos, como los 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 utilizando RegEdit.exe. [23] Editar el registro a veces es necesario cuando se solucionan 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 exponen algunos de los metadatos del registro, como la fecha de la última modificación.
El editor de registro para los sistemas operativos de la serie 3.1/95 es RegEdit.exe y para Windows NT es RegEdt32.exe; las funcionalidades están fusionadas en Windows XP. Hay herramientas opcionales y de terceros similares a RegEdit.exe disponibles para muchas versiones de Windows CE.
El Editor del Registro permite a los usuarios realizar las siguientes funciones:
REG
de archivos ., exportación de datos en formato binario Hive.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 . En Windows 2000 y posteriores, contienen la cadena Windows Registry Editor Version 5.00 al principio, mientras que en los sistemas Windows 9x y NT 4.0, contienen la cadena REGEDIT4 . [26] Los archivos REG de Windows 2000 y posteriores están basados en Unicode , mientras que en los sistemas Windows 9x y NT 4.0, están basados en ANSI . [ cita requerida ] Los archivos de formato de Windows 9x .REG
son compatibles con Windows 2000 y posteriores. [26] El Editor del Registro de Windows en estos sistemas también admite la exportación .REG
de archivos en formato Windows 9x/NT. [ cita requerida ] Los datos se almacenan en .REG
archivos utilizando la siguiente sintaxis: [26]
[< Nombre de colmena>\< Nombre de clave>\< Nombre de subclave>] "Nombre de valor" = <Tipo de valor>:<Datos del valor>
El valor predeterminado de una clave se puede editar utilizando "@" en lugar de "Nombre del valor":
[< Nombre de Hive>\< Nombre de clave>\< Nombre de 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 barra invertida doble ('\\') y las comillas ('"') como una barra invertida-comillas ('\"').
Por ejemplo, para agregar los valores "Valor A", "Valor B", "Valor C", "Valor D", "Valor E", "Valor F", "Valor G", "Valor H", "Valor I", "Valor J", "Valor K", "Valor L" y "Valor M" 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 delimitada por comas de valores hexadecimales)> "Valor C" = dword:<Valor entero DWORD> "Valor D" = hex(0):<REG_NONE (como lista delimitada por comas de valores hexadecimales)> "Valor E" = hex(1):<REG_SZ (como lista delimitada por comas de valores hexadecimales que representan una cadena terminada en NUL UTF-16LE)> "Valor F" = hex(2):<Datos de valor de cadena expandible (como lista delimitada por comas de valores hexadecimales que representan una cadena terminada en NUL UTF-16LE)> "Valor G" = hex(3):<Datos binarios (como lista delimitada por comas de valores hexadecimales)> ; igual a "Valor B" "Valor H" = hex(4):<valor DWORD (como lista delimitada por comas de 4 valores hexadecimales, en orden de bytes little endian)> "Valor I" = hex(5):<valor DWORD (como lista delimitada por comas de 4 valores hexadecimales, en orden de bytes big endian)> "Valor J" = hex(7):<datos de valor de múltiples cadenas (como lista delimitada por comas de valores hexadecimales que representan cadenas terminadas en NUL UTF-16LE)> "Valor K" = hex(8):<REG_RESOURCE_LIST (como lista delimitada por comas de valores hexadecimales)> "Valor L" = hex(a):<REG_RESOURCE_REQUIREMENTS_LIST (como lista delimitada por comas de valores hexadecimales)> "Valor M" = hex(b):<valor QWORD (como lista delimitada por comas de 8 valores hexadecimales, en orden de bytes little endian)>
Los datos de .REG
los archivos se pueden agregar o fusionar con el registro haciendo doble clic en estos archivos o utilizando el modificador /s en la línea de comando. REG
Los archivos 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 estar precedido por 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 a eliminar deben tener un signo menos ("-") después del signo igual ("="). [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 solo el valor predeterminado de la clave HKLM\SOFTWARE\Foobar (y sus datos):
[ HKEY_LOCAL_MACHINE \SOFTWARE\Foobar ] @ = -
Las líneas que comienzan con punto y coma se consideran comentarios:
; Este es un comentario. Puede colocarse en cualquier parte de un archivo .reg [ HKEY_LOCAL_MACHINE \SOFTWARE\Foobar] "Valor" = "Cadena de ejemplo"
Las políticas de grupo de Windows pueden cambiar las claves de registro de una serie de equipos o usuarios individuales en función de las políticas. Cuando una política entra en vigor por primera vez para un equipo o para un usuario individual de un equipo, las configuraciones de registro especificadas como parte de la política se aplican a la configuración del equipo o del usuario.
Windows también buscará políticas actualizadas y las aplicará periódicamente, normalmente cada 90 minutos. [27]
A través de su alcance, una política define a qué máquinas y usuarios se aplicará la política. El hecho de que una máquina o un usuario se encuentren dentro del alcance de una política o no se define mediante un conjunto de reglas que pueden filtrar por la ubicación de la máquina o la cuenta de usuario en el directorio de la organización, usuarios específicos o cuentas de máquina o grupos de seguridad. Se pueden configurar reglas más avanzadas mediante expresiones de Instrumental de administración de Windows . Dichas reglas pueden filtrar por propiedades como el nombre del proveedor de la computadora, la arquitectura de la CPU, el software instalado o las redes a las que se conecta.
Por ejemplo, el administrador puede crear una política con un conjunto de configuraciones de registro para las máquinas del departamento de contabilidad y una política con otro conjunto (de bloqueo) de configuraciones de registro para las terminales de quiosco del área de visitantes. Cuando una máquina se mueve de un ámbito a otro (por ejemplo, al cambiar su nombre o trasladarla a otra unidad organizativa), se aplica automáticamente la política correcta. Cuando se cambia una política, se vuelve a aplicar automáticamente a todas las máquinas que se encuentran actualmente en su ámbito.
La política se edita a través de una serie de plantillas administrativas que proporcionan una interfaz de usuario para seleccionar y cambiar configuraciones. El conjunto de plantillas administrativas es extensible y los paquetes de software que admiten dicha administración remota pueden registrar sus propias plantillas.
El registro se puede manipular de varias maneras desde la línea de comandos . Las herramientas de utilidad Reg.exe
y RegIni.exe
se incluyen en Windows XP y versiones posteriores de Windows. Las ubicaciones alternativas para las versiones anteriores de Windows incluyen los CD del Kit de recursos o el CD de instalación original de Windows.
También .REG
se puede importar un archivo desde la línea de comandos con el siguiente comando:
Archivo RegEdit.exe /s
El parámetro /s significa que el archivo se fusionará en el registro sin hacer nada/s
. Si se omite el parámetro, se le pedirá al usuario que confirme la operación. En Windows 98, Windows 95 y al menos algunas configuraciones de Windows XP, el /s
modificador también hace RegEdit.exe
que se ignore la configuración del registro que permite a los administradores desactivarlo. Al utilizar el /s
modificador, RegEdit.exe
no se devuelve un código de retorno apropiado si la operación falla, a diferencia de Reg.exe
lo que sí ocurre con el modificador.
Archivo RegEdit.exe /e
exporta todo el registro en formato V5 a un .REG
archivo 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 estar entre comillas si contiene espacios).
Archivo RegEdit.exe /a
exporta todo el registro en formato V4 a un .REG
archivo ANSI.
RegEdit.exe /a archivo <clave>
exporta únicamente la (sub)clave especificada (que debe estar entre comillas si contiene espacios).
También es posible utilizar Reg.exe
. A continuación se muestra un ejemplo para mostrar el valor del valor de registro Versión:
CONSULTA Reg.exe HKLM\Software\Microsoft\ResKit /v Versión
Otras opciones de línea de comandos incluyen VBScript o JScript junto con CScript , WMI o WindowsWMIC.exe
PowerShell .
Los permisos del registro se pueden manipular a través de la línea de comandos utilizando RegIni.exe
la herramienta y SubInACL.exe
. Por ejemplo, los permisos de la clave HKEY_LOCAL_MACHINE\SOFTWARE se pueden visualizar utilizando:
SubInACL.exe /keyreg HKEY_LOCAL_MACHINE\SOFTWARE /display
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. [28]
Al igual que el sistema de archivos, PowerShell utiliza el concepto de una ubicación actual que define el contexto en el que operan los comandos de forma predeterminada. El Get-ChildItem
(también disponible a través de los alias ls
, dir
o gci
) recupera las claves secundarias de la ubicación actual. Al utilizar el comando Set-Location
(o el alias cd
) el usuario puede cambiar la ubicación actual a otra clave del registro. [28] 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.
A través de los archivos de scripts de PowerShell, un administrador puede preparar scripts que, al ejecutarse, realizan cambios en el registro. Dichos scripts se pueden distribuir a los administradores, quienes pueden ejecutarlos en máquinas individuales. El proveedor de registro de PowerShell admite transacciones, es decir, se pueden agrupar múltiples 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 de los cambios se confirme en la base de datos. [28] [29]
El registro se puede editar a través de las API de la biblioteca de API base avanzada de Windows 32 (advapi32.dll). [30] Lista de funciones de la API del registro:
Muchos lenguajes de programación ofrecen funciones o clases de bibliotecas de tiempo de ejecución integradas que encapsulan las API de Windows subyacentes y, por lo tanto, permiten que los programas almacenen configuraciones en el registro (por ejemplo, en VB.NET y C# , o en Delphi y Free Pascal ). Las aplicaciones habilitadas para COM , como Visual Basic 6, pueden usar el objeto WSH . Otra forma es usar la herramienta Windows Resource Kit, ejecutándola desde el código, [31] aunque esto se considera una mala práctica de programación.Microsoft.Win32.Registry
TRegistry
WScript.Shell
Reg.exe
De manera similar, los lenguajes de script como Perl (con Win32::TieRegistry
), Python (con winreg), TCL (que viene incluido en el paquete de registro), [32] Windows Powershell y Windows Scripting Host también permiten la edición del registro desde scripts.
El archivo offreg.dll [33] disponible en 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 (subárboles) de un sistema fuera de línea desde Windows PE o Linux (en este último caso utilizando herramientas de código abierto ).
Antes de la introducción de COM sin registro , se animaba a los desarrolladores a añadir código de inicialización a los binarios en proceso y fuera de proceso para realizar la configuración de registro necesaria para que ese objeto funcione. Para los binarios en proceso, como los archivos .DLL y .OCX, los módulos normalmente exportaban una función llamada DllInstall() [34] que podía ser llamada por programas de instalación o invocada manualmente con utilidades como Regsvr32.exe; [35] los binarios fuera de proceso normalmente admiten los argumentos de línea de comandos /Regserver y /Unregserver que crearon o eliminaron las configuraciones de registro necesarias. [36] Las aplicaciones COM que se rompen debido a problemas de DLL Hell se pueden reparar comúnmente con RegSvr32.exe o el modificador /RegServer sin tener que volver a invocar los programas de instalación. [37]
Windows expone API que permiten que las aplicaciones en modo usuario se registren para recibir un evento de notificación si se modifica una clave de registro particular. [38] Las API también están disponibles para permitir que las aplicaciones en modo kernel filtren y modifiquen las llamadas de registro realizadas por otras aplicaciones. [39]
Windows también admite el acceso remoto al registro de otra computadora a través de la RegConnectRegistry
función [40] si el servicio de Registro Remoto está en ejecución, configurado correctamente y su tráfico de red no está protegido por un firewall. [41]
Cada clave del registro de las versiones de Windows NT puede tener un descriptor de seguridad asociado . El descriptor de seguridad contiene una lista de control de acceso (ACL) que describe a qué grupos de usuarios o usuarios individuales se les conceden o deniegan permisos de acceso. El conjunto de permisos del registro incluye 10 derechos o permisos que se pueden conceder o denegar explícitamente a un usuario o a un grupo de usuarios.
Al igual que con otros objetos protegibles en el sistema operativo, las entradas de control de acceso individuales (ACE) en el descriptor de seguridad pueden ser explícitas o heredadas de un objeto padre. [42]
La Protección de recursos de Windows es una característica 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 malware y modificaciones accidentales. [43]
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 en un nivel de integridad inferior no puede escribir, cambiar ni eliminar una clave o valor del registro, incluso si la cuenta del proceso ha obtenido acceso a través de la ACL. Por ejemplo, Internet Explorer que se ejecuta en modo protegido puede leer claves o valores del registro de integridad media y baja del usuario conectado actualmente, pero solo puede modificar claves de integridad baja. [44]
Aparte de la seguridad, las claves de registro no se pueden eliminar ni editar por otras causas. Las claves de registro que contienen caracteres NUL no se pueden eliminar con editores de registro estándar y requieren una utilidad especial para su eliminación, como RegDelNull. [45] [46]
A lo largo de los años, las distintas ediciones de Windows han admitido varios métodos diferentes para realizar copias de seguridad y restaurar el registro, algunos de los cuales ahora están obsoletos:
HKLM\SYSTEM\CurrentControlSet
clave que almacena información del hardware y del controlador del dispositivo.%Windir%\Sysbckup
Scanreg.exe también puede ejecutarse desde MS-DOS . [48]RDISK.EXE
una utilidad para realizar copias de seguridad y restaurar todo el registro. [49]Windows 2000 y versiones posteriores de Windows utilizan la Política de grupo para aplicar las configuraciones del registro a través de una extensión de cliente específica del registro en el motor de procesamiento de Política de grupo. [52] La política se puede aplicar localmente a una sola computadora usando gpedit.msc
o a múltiples usuarios y computadoras en un dominio usando gpmc.msc
.
Con Windows 95, Windows 98, Windows ME y Windows NT 4.0, los administradores pueden utilizar un archivo especial que se fusionará con el registro, denominado archivo de políticas ( POLICY.POL
). El archivo de políticas permite a los administradores evitar que los usuarios que no son administradores cambien la configuración del registro, como, por ejemplo, el nivel de seguridad de Internet Explorer y el fondo de escritorio. El archivo de políticas se utiliza principalmente en empresas con una gran cantidad de computadoras donde la empresa necesita estar protegida de usuarios maliciosos o descuidados.
La extensión predeterminada del archivo de políticas es .POL
. El archivo de políticas filtra las configuraciones que aplica por usuario y por grupo (un "grupo" es un conjunto definido de usuarios). Para ello, el archivo de políticas se fusiona con el registro, lo que impide que los usuarios lo eludan simplemente cambiando las configuraciones. El archivo de políticas se distribuye normalmente a través de una LAN, pero se puede colocar en la computadora local.
El archivo de políticas se crea con una herramienta gratuita de Microsoft que se conoce con el nombre de archivo poledit.exe
para Windows 95/Windows 98 y con un módulo de administración de equipos para Windows NT. El editor requiere permisos administrativos para ejecutarse en sistemas que utilizan 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 políticas carga la configuración que puede cambiar desde .ADM
archivos, de los cuales se incluye uno, que contiene la configuración que proporciona el shell de Windows. El .ADM
archivo es texto simple y admite una fácil localización al permitir que todas las cadenas se almacenen en un solo lugar.
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 denominada "InifileMapping". [53] Esta funcionalidad se introdujo para permitir que las aplicaciones heredadas escritas para versiones de 16 bits de Windows pudieran ejecutarse en plataformas Windows NT en las que la carpeta del sistema ya no se considera una ubicación adecuada para los datos o la configuración específicos del usuario. Las aplicaciones de 32 bits no compatibles también se pueden redirigir de esta manera, aunque la función originalmente estaba pensada para aplicaciones de 16 bits.
Windows Vista introdujo una virtualización de registro limitada, mediante la cual las aplicaciones mal escritas que no respetan el principio del mínimo privilegio y en su lugar intentan escribir datos del usuario en una ubicación del sistema de solo lectura (como la sección HKEY_LOCAL_MACHINE), se redirigen silenciosamente a una ubicación más apropiada, sin cambiar la aplicación en sí.
De manera 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. Si se utiliza junto con la virtualización de archivos, esto permite que las aplicaciones se ejecuten en una máquina sin estar instaladas en ella.
Los procesos de baja integridad también pueden utilizar la virtualización del registro. Por ejemplo, Internet Explorer 7 u 8 que se ejecuta en "Modo protegido" en Windows Vista y versiones posteriores redirigirá automáticamente las escrituras del registro realizadas por controles ActiveX a una ubicación protegida para frustrar algunas clases de vulnerabilidades de seguridad .
El kit de herramientas de compatibilidad de aplicaciones [54] proporciona cuñas que pueden redirigir de forma transparente las operaciones de registro HKEY_LOCAL_MACHINE o HKEY_CLASSES_ROOT a HKEY_CURRENT_USER para solucionar errores de " LUA " que hacen que las aplicaciones no funcionen para usuarios con derechos insuficientes.
Los críticos calificaron el registro de Windows 95 de 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 corte de energía o eventos catastróficos similares durante las actualizaciones de la base de datos. [55] Incluso en el caso de un error irrecuperable, Windows puede reparar o reinicializar las entradas de registro dañadas durante el arranque del sistema. [55]
En Windows, el uso del registro para almacenar datos de programas queda a criterio del desarrollador. Microsoft proporciona interfaces de programación para almacenar datos en archivos XML (a través de MSXML ) o archivos de base de datos (a través de SQL Server Compact ) que los desarrolladores pueden utilizar en su lugar. Los desarrolladores también tienen la libertad de utilizar alternativas que no sean de Microsoft o desarrollar sus propios almacenes de datos propietarios.
A diferencia del modelo de base de datos basado en binario del Registro de Windows, algunos otros sistemas operativos utilizan archivos de texto sin formato separados para la configuración de aplicaciones y demonios , pero agrupan estas configuraciones para facilitar su administración.
/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/ punto ) dentro del directorio de inicio 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. [56]/Library/
carpeta , mientras que los archivos de configuración por usuario se almacenan en la ~/Library/
carpeta correspondiente en el directorio de inicio del usuario, y los archivos de configuración establecidos por el sistema se almacenan en /System/Library/
. Dentro de estos directorios respectivos, una aplicación normalmente almacena un archivo de lista de propiedades en el Preferences/
subdirectorio./etc/objrepos
.La siguiente tabla muestra otras dificultades o limitaciones causadas por el uso de archivos .INI que se superan mediante el Registro.
{{cite book}}
: CS1 maint: varios nombres: lista de autores ( enlace )