![]() | |
![]() | |
Desarrollador (es) | Microsoft |
---|---|
Versión inicial | 6 de abril de 1992 ; Hace 29 años con Windows 3.1 (6 de abril de 1992) |
Sistema operativo | Microsoft Windows |
Plataforma | IA-32, x86-64 y ARM (e históricamente DEC Alpha, Itanium, MIPS y PowerPC ) |
Incluido con | Microsoft Windows |
Escribe | Base de datos jerárquica |
Sitio web | docs.microsoft.com / en-es / windows / desktop / SysInfo / registry ![]() |
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 usar el registro. El kernel, los controladores de dispositivos, los servicios, el administrador de cuentas de seguridad y las interfaces de usuario pueden usar el registro. El registro también permite el acceso a contadores para perfilar el rendimiento del sistema.
En otras palabras, el registro o el 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 de un programa, su versión y cómo iniciar el programa.
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. No es un requisito que las aplicaciones de Windows utilicen 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 multiusuario. Por el contrario, el Registro de Windows almacena todas las configuraciones de la aplicación en un repositorio lógico (pero varios archivos discretos) y de forma estandarizada. Según Microsoft, esto ofrece varias ventajas sobre los archivos.INI. Dado que el análisis de archivos se realiza de manera mucho más eficiente con un formato binario, se puede leer o escribir más rápidamente que 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 archivos.INI. Este es un beneficio cuando se editan claves manualmente usando 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. Copia de seguridad y restauración también se simplifica el registro se puede acceder a través de una conexión de red para gestión remota / soporte, incluyendo las secuencias de comandos, utilizando el conjunto estándar de API, siempre y cuando el registro remoto servicio está en funcionamiento y las reglas del cortafuegos permite esto.
Dado que el registro es una base de datos, ofrece una integridad del sistema mejorada con funciones como actualizaciones atómicas. Si dos procesos intentan actualizar el mismo valor de 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 los archivos.INI, tales condiciones de carrera pueden resultar en datos inconsistentes que no coinciden con ninguno de los intentos de actualización. 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 y / o valor, con la semántica tradicional de compromiso-aborto. (Tenga en cuenta, sin embargo, 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 de registro son objetos contenedores similares a carpetas. Los valores de 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 los nombres de ruta de Windows, usando 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 se asigna al contenido de una clave de registro precargada por el kernel desde una "colmena" almacenada, o al contenido de una subclave dentro de otra clave raíz, o mapeado a un servicio registrado o DLL que proporciona acceso a sus subclaves y valores contenidos.
Por 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, tradicionalmente nombradas de acuerdo con sus identificadores constantes definidos en la API de Win32, o por abreviaturas sinónimas (según las aplicaciones):
Al igual que otros archivos y servicios en Windows, todas las claves de registro pueden estar restringidas por listas de control de acceso (ACL), dependiendo de los privilegios del usuario, o de los tokens de seguridad adquiridos por las aplicaciones, o de las políticas de seguridad del sistema impuestas por el sistema (estas restricciones pueden estar predefinidas por el propio sistema y configurado por los administradores del sistema local o por los administradores de dominio). Es posible que diferentes 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 las 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 cuya letra mayúscula no es significativa. 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 y / o identifican la clave principal. Los valores del registro pueden contener barras invertidas en sus nombres, pero al hacerlo, es difícil distinguirlos de sus rutas clave cuando se utilizan algunas funciones heredadas de la API del registro de Windows (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 refiere a la parte del nombre de cada valor de registro como una "clave". Los términos son una exclusión del registro de 16 bits en Windows 3, en el que las claves de registro no podían contener pares arbitrarios de nombre / datos, 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 de 'clave de registro' y 'clave de matriz asociativa') formaban una jerarquía, y los valores del registro eran todas cadenas. Cuando se creó el registro de 32 bits, también lo fue la capacidad adicional de crear múltiples valores con nombre por clave, y los significados de los nombres estaban algo distorsionados. Por 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 con un tipo simbólico (definido como una constante numérica) que define cómo analizar estos datos. Los tipos estándar son:
ID de tipo | Nombre de tipo simbólico | Significado y codificación de los datos almacenados en el valor de registro. |
---|---|---|
0 | REG_NONE | Sin tipo (el valor almacenado, si lo hay) |
1 | REG_SZ | Un valor de cadena, normalmente almacenado y expuesto en UTF-16 LE (cuando se usa la versión Unicode de las funciones de la API de Win32), generalmente terminado por un carácter NUL |
2 | REG_EXPAND_SZ | Un valor de cadena "expandible" que puede contener variables de entorno, normalmente almacenadas y expuestas en UTF-16LE, generalmente terminadas por un carácter NUL. |
3 | REG_BINARY | Datos binarios (cualquier dato arbitrario) |
4 | REG_DWORD / REG_DWORD_LITTLE_ENDIAN | Un valor DWORD, un entero sin signo de 32 bits (números entre 0 y 4.294.967.295 [2 32 - 1]) ( little-endian ) |
5 | REG_DWORD_BIG_ENDIAN | Un valor DWORD, un entero sin signo de 32 bits (números entre 0 y 4.294.967.295 [2 32 - 1]) ( big - endian ) |
6 | REG_LINK | Un enlace simbólico (UNICODE) a otra clave de registro, especificando una clave raíz y la ruta a la clave de destino |
7 | REG_MULTI_SZ | Un valor de cadenas múltiples, que es una lista ordenada de cadenas no vacías, normalmente almacenadas y expuestas en Unicode, cada una terminada por un carácter nulo, la lista normalmente terminada por un segundo carácter nulo. |
8 | REG_RESOURCE_LIST | Una lista de recursos (utilizada por la enumeración y configuración de hardware Plug-n-Play) |
9 | REG_FULL_RESOURCE_DESCRIPTOR | Un descriptor de recursos (utilizado por la enumeración y configuración de hardware Plug-n-Play) |
10 | REG_RESOURCE_REQUIREMENTS_LIST | Una lista de requisitos de recursos (utilizada por la enumeración y configuración de hardware Plug-n-Play) |
11 | REG_QWORD / REG_QWORD_LITTLE_ENDIAN | Un valor QWORD, un entero de 64 bits (ya sea big o little-endian, o no especificado) (introducido en Windows 2000 ) |
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 con "HKEY". Con frecuencia se abrevian con 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 cargados por el kernel del sistema en el momento del arranque y luego compartidos (con varios derechos de acceso). entre todos los procesos que se ejecutan en el sistema local, o cargados y mapeados 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 primero buscándolas en "HKEY_CURRENT_USER \ Software \ Nombre del proveedor \ Nombre de la aplicación \ Versión \ Nombre de la configuración", y si no se encuentra la configuración, busque en la misma ubicación bajo la clave HKEY_LOCAL_MACHINE. Sin embargo, lo contrario puede aplicarse a 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 a nivel de administrador para usar una aplicación.
HKLM abreviado, HKEY_LOCAL_MACHINE almacena configuraciones que son específicas de la computadora local.
La clave ubicada por HKLM en realidad no se almacena en el disco, sino que el kernel del sistema la mantiene en la memoria para mapear todas las demás subclaves. Las aplicaciones no pueden crear subclaves adicionales. En Windows NT, esta clave contiene cuatro subclaves, "SAM", "SEGURIDAD", "SISTEMA" y "SOFTWARE", que se cargan en el momento del arranque dentro de sus archivos respectivos 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, una sexta y una séptima subclave, "COMPONENTS" y "BCD", se asignan en la memoria por el kernel a pedido y se cargan 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 a sí mismo como una base de datos jerárquica integrada, las ramas del registro en realidad se almacenan en varios archivos de disco llamados colmenas. (La palabra colmena constituye una broma ).
Algunas colmenas son volátiles y no se almacenan en ningún disco. Un ejemplo de esto es la colmena 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 se inicia y realiza la detección de hardware.
Las configuraciones individuales para los usuarios de un sistema se almacenan en una colmena (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 / recuperen configuraciones para el usuario actual implícitamente bajo la clave HKCU.
No todas las colmenas se cargan al mismo tiempo. En el momento del arranque, solo se carga un conjunto mínimo de subárboles y, después de eso, se cargan cuando el sistema operativo se inicializa y cuando los usuarios inician sesión o siempre que una aplicación carga explícitamente un subárbol.
El registro se almacena físicamente en varios archivos, que generalmente se ocultan de las API de 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
; el subárbol de registro de usuarios HKEY_CURRENT_USER específico del usuario se almacena Ntuser.dat
dentro del perfil de usuario. Hay uno de estos por usuario; si un usuario tiene un perfil de itinerancia, este archivo se copiará hacia y desde un servidor al cerrar la 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 se desplaza de forma predeterminada.
Los sistemas Windows NT almacenan el registro en un formato de archivo binario que el Editor del Registro puede exportar, cargar y descargar en estos sistemas operativos. Los siguientes archivos de 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 asociado a una colmena. Se usa solo al actualizar los sistemas operativos.El siguiente archivo se almacena en la carpeta de perfil de cada usuario:
%USERPROFILE%\Ntuser.dat
- HKEY_USERS \ lt; User SID gt; (vinculado por HKEY_CURRENT_USER)Para Windows 2000, Server 2003 y Windows XP, el siguiente archivo adicional específico del usuario se utiliza 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 \ lt;User SIDgt; _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á %LocalAppData%\Microsoft\Windows\Usrclass.dat
traducida) alias - HKEY_USERS \ lt;User SIDgt; _Classes (HKEY_CURRENT_USER \ Software \ Classes)Windows 2000 mantiene una copia alternativa de las secciones del registro (.ALT) e intenta cambiar a ella cuando se detectan daños. 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 bloqueo. Además, la %SystemRoot%\Repair
carpeta contiene una copia de las secciones 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 las actualizaciones interrumpidas se puedan completar en el próximo inicio. Internamente, los archivos del Registro se dividen en "contenedores" de 4 kB que contienen colecciones de "celdas".
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 perfiles del usuario en %WINDIR%\Profiles\lt;Usernamegt;\
.
Se llama al único archivo de registro REG.DAT
y se almacena en el %WINDIR%
directorio.
Nota: Para acceder a los archivos de registro, el teléfono debe configurarse en un modo especial usando:
Si alguno de los métodos anteriores funcionó, los archivos de registro del dispositivo se pueden encontrar en la siguiente ubicación:
{Phone}\EFIESP\Windows\System32\config
Nota: InterOp Tools también incluye un editor de registro.
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 son solo los programas de instalación los que realizan cambios en la base de datos del registro durante la instalación / configuración y eliminación. Si un usuario desea editar el registro manualmente, Microsoft recomienda que se realice una copia de seguridad del registro antes del cambio. 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, es posible que el usuario tenga que verificar manualmente directorios internos como archivos de programa. Después de esto, es posible que el usuario deba eliminar manualmente cualquier referencia al programa desinstalado en el registro. Por lo general, esto se hace mediante RegEdit.exe. A veces es necesario editar el registro cuando se trabaja con problemas específicos de Windows, por ejemplo, los problemas al iniciar sesión en un dominio se pueden resolver editando el registro.
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 la serie de sistemas operativos 3.1 / 95 es RegEdit.exe y para Windows NT es RegEdt32.exe; las funcionalidades se fusionan en Windows XP. Hay disponibles herramientas opcionales y / o de terceros similares a RegEdit.exe para muchas versiones de Windows CE.
El Editor del registro permite a los usuarios realizar las siguientes funciones:
REG
archivos, exportando datos en formato de colmena binaria.REG
archivos.REG
Los archivos (también conocidos como entradas de registro) son archivos legibles por humanos basados en texto 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 y están basados en Unicode. En los sistemas Windows 9x y NT 4.0, contienen la cadena REGEDIT4 y están basados en ANSI. Los .REG
archivos de formato Windows 9x son compatibles con Windows 2000 y versiones posteriores. El Editor del registro en Windows en estos sistemas también admite la exportación de .REG
archivos en formato Windows 9x / NT. Los datos se almacenan en .REG
archivos con la siguiente sintaxis:
[lt;Hive namegt;\lt;Key namegt;\lt;Subkey namegt;] "Value name"=lt;Value typegt;:lt;Value datagt;
El valor predeterminado de una clave se puede editar utilizando "@" en lugar de "Nombre de valor":
[lt;Hive namegt;\lt;Key namegt;\lt;Subkey namegt;] @=lt;Value typegt;:lt;Value datagt;
Los valores de cadena no requieren un lt;Tipo de valorgt; (ver ejemplo), pero las barras invertidas ('\') deben escribirse como una barra invertida doble ('\\') y las comillas ('"') como comillas invertidas ( '\ "').
Por ejemplo, para sumar 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:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Foobar] "Value A"="lt;String value data with escape charactersgt;" "Value B"=hex:lt;Binary data (as comma-delimited list of hexadecimal values)gt; "Value C"=dword:lt;DWORD value integergt; "Value D"=hex(0):lt;REG_NONE (as comma-delimited list of hexadecimal values)gt; "Value E"=hex(1):lt;REG_SZ (as comma-delimited list of hexadecimal values representing a UTF-16LE NUL-terminated string)gt; "Value F"=hex(2):lt;Expandable string value data (as comma-delimited list of hexadecimal values representing a UTF-16LE NUL-terminated string)gt; "Value G"=hex(3):lt;Binary data (as comma-delimited list of hexadecimal values)gt; ; equal to "Value B" "Value H"=hex(4):lt;DWORD value (as comma-delimited list of 4 hexadecimal values, in little endian byte order)gt; "Value I"=hex(5):lt;DWORD value (as comma-delimited list of 4 hexadecimal values, in big endian byte order)gt; "Value J"=hex(7):lt;Multi-string value data (as comma-delimited list of hexadecimal values representing UTF-16LE NUL-terminated strings)gt; "Value K"=hex(8):lt;REG_RESOURCE_LIST (as comma-delimited list of hexadecimal values)gt; "Value L"=hex(a):lt;REG_RESOURCE_REQUIREMENTS_LIST (as comma-delimited list of hexadecimal values)gt; "Value M"=hex(b):lt;QWORD value (as comma-delimited list of 8 hexadecimal values, in little endian byte order)gt;
Los datos de los .REG
archivos se pueden agregar / fusionar con el registro haciendo doble clic en estos archivos o usando el modificador / s en la línea de comando. REG
Los archivos también se pueden utilizar para eliminar datos de registro.
Para eliminar una clave (y todas las subclaves, valores y datos), el nombre de la clave debe estar precedido por un signo menos ("-").
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 eliminarán deben tener un signo menos ("-") después del signo igual ("=").
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] "Value A"=- "Value 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:
; This is a comment. This can be placed in any part of a.reg file [HKEY_LOCAL_MACHINE\SOFTWARE\Foobar] "Value"="Example string"
Las políticas de grupo de Windows pueden cambiar las claves de registro para varias máquinas o usuarios individuales según las políticas. Cuando una política entra en vigor por primera vez para una máquina o para un usuario individual de una máquina, la configuración del registro especificada como parte de la política 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.
A través de su alcance, una política define a qué máquinas y / o usuarios se aplicará la política. Si una máquina o usuario está dentro del alcance de una política o no, se define mediante un conjunto de reglas que pueden filtrar la ubicación de la máquina o cuenta de usuario en el directorio organizativo, usuarios específicos o cuentas de máquina o grupos de seguridad. Se pueden configurar reglas más avanzadas utilizando expresiones de Instrumental de administración de Windows. Dichas reglas pueden filtrar propiedades como el nombre del proveedor de la computadora, la arquitectura de la CPU, el software instalado o las redes conectadas.
Por ejemplo, el administrador puede crear una política con un conjunto de configuraciones de registro para máquinas en el departamento de contabilidad y una política con otro conjunto (de bloqueo) de configuraciones de registro para terminales de quiosco en el área de visitantes. Cuando una máquina se mueve de un ámbito a otro (por ejemplo, cambiando su nombre o moviéndolo a otra unidad organizativa), la política correcta se aplica automáticamente. 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 formas 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 heredadas de Windows incluyen los CD del Kit de recursos o el CD de instalación original de Windows.
Además, .REG
se puede importar un archivo desde la línea de comandos con el siguiente comando:
RegEdit.exe /s file
La / s significa que el archivo se fusionará silenciosamente con el registro. Si /s
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
conmutador también hace RegEdit.exe
que se ignore la configuración en el registro que permite a los administradores desactivarlo. Cuando se usa el /s
conmutador RegEdit.exe
, no devuelve un código de retorno apropiado si la operación falla, a diferencia de lo Reg.exe
que sí.
RegEdit.exe /e file
exporta todo el registro en formato V5 a un .REG
archivo UNICODE, mientras que cualquiera de
RegEdit.exe /e file HKEY_CLASSES_ROOT[\lt;keygt;] RegEdit.exe /e file HKEY_CURRENT_CONFIG[\lt;keygt;] RegEdit.exe /e file HKEY_CURRENT_USER[\lt;keygt;] RegEdit.exe /e file HKEY_LOCAL_MACHINE[\lt;keygt;] RegEdit.exe /e file HKEY_USERS[\lt;keygt;]
exportar la (sub) clave especificada (que debe estar entre comillas si contiene espacios) solamente.
RegEdit.exe /a file
exporta todo el registro en formato V4 a un .REG
archivo ANSI.
RegEdit.exe /a file lt;keygt;
exporta la (sub) clave especificada (que debe ir entre comillas si contiene espacios) únicamente.
También es posible utilizar Reg.exe
. Aquí hay una muestra para mostrar el valor del valor de registro Versión:
Reg.exe QUERY HKLM\Software\Microsoft\ResKit /v Version
Otras opciones de línea de comandos incluyen un VBScript o JScript junto con CScript, WMI o WMIC.exe
y Windows PowerShell.
Los permisos de registro se pueden manipular a través de la línea de comandos utilizando RegIni.exe
y la SubInACL.exe
herramienta. Por ejemplo, los permisos en la clave HKEY_LOCAL_MACHINE \ SOFTWARE se pueden mostrar usando:
SubInACL.exe /keyreg HKEY_LOCAL_MACHINE\SOFTWARE /display
Windows PowerShell viene con 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.
También 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 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 usar el comando Set-Location
(o el alias cd
), el usuario puede cambiar la ubicación actual a otra clave del registro. Los comandos que renombran elementos, eliminan elementos, crean nuevos elementos o establecen el contenido de elementos o propiedades se pueden utilizar para cambiar el nombre de 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, cuando se ejecutan, realizan cambios en el registro. Estos scripts se pueden distribuir a administradores que pueden ejecutarlos en máquinas individuales. El proveedor de registro de PowerShell admite transacciones, es decir, se pueden agrupar varios cambios en el registro en una sola 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, ninguno de los cambios se confirmará en la base de datos.
El registro se puede editar a través de las API de la biblioteca API base avanzada de Windows 32 (advapi32.dll).
Muchos lenguajes de programación ofrecen funciones o clases de biblioteca de tiempo de ejecución integradas que envuelven 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 utilizar la herramienta del kit de recursos de Windows, ejecutándola desde el código, 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 scripting como Perl (con Win32::TieRegistry
), Python (con winreg), TCL (que viene incluido con el paquete de registro), Windows Powershell y Windows Scripting Host también permiten la edición del registro a partir de scripts.
El offreg.dll disponible en el Kit de controladores de Windows ofrece un conjunto de API para la creación y manipulación de colmenas de registro no cargadas actualmente similares a las proporcionadas por advapi32.dll.
También es posible editar el registro (colmenas) 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 alentó a los desarrolladores a agregar código de inicialización a los binarios en proceso y fuera de proceso para realizar la configuración de registro requerida para que ese objeto funcione. Para los archivos binarios en proceso, como los archivos.DLL y.OCX, los módulos normalmente exportaban una función llamada DllInstall () que podía ser invocada por programas de instalación o invocada manualmente con utilidades como Regsvr32.exe; Los binarios fuera de proceso suelen admitir los argumentos de la línea de comandos / Regserver y / Unregserver que crearon o eliminaron la configuración de registro requerida. Las aplicaciones COM que se rompen debido a problemas de DLL Hell comúnmente se pueden reparar con RegSvr32.exe o el modificador / RegServer sin tener que volver a invocar los programas de instalación.
Windows expone API que permiten que las aplicaciones en modo de usuario se registren para recibir un evento de notificación si se cambia una clave de registro en particular. 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.
Windows también admite el acceso remoto al registro de otra computadora a través de la RegConnectRegistry
función si el servicio de Registro remoto se está ejecutando, está configurado correctamente y su tráfico de red no está protegido por cortafuegos.
Cada clave del registro de versiones de Windows NT puede tener asociado un descriptor de seguridad. El descriptor de seguridad contiene una lista de control de acceso (ACL) que describe a qué grupos de usuarios o usuarios individuales se les otorgan o niegan permisos de acceso. El conjunto de permisos de registro incluye 10 derechos / permisos que se pueden permitir o denegar explícitamente a un usuario o grupo de usuarios.
Permiso | Descripción |
---|---|
Valor de la consulta | El derecho a leer el valor de la clave del registro. |
Valor ajustado | El derecho a escribir un nuevo valor |
Crear subclave | El derecho a crear subclaves. |
Enumerar subclaves | Permitir la enumeración de subclaves. |
Notificar | El derecho a solicitar notificaciones de cambios para claves o subclaves de registro. |
Crear enlace | Reservado por el sistema operativo. |
Borrar | El derecho a eliminar una clave. |
Escribir DACL | El derecho a modificar los permisos de la DACL del contenedor. |
Escribir propietario | El derecho a modificar el propietario del contenedor. |
Leer control | El derecho a leer el DACL. |
Al igual que con otros objetos asegurables 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 principal.
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 de malware y modificaciones accidentales.
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 más bajo no puede escribir, cambiar o eliminar una clave / valor de registro, incluso si la cuenta del proceso ha recibido acceso a través de la ACL. Por ejemplo, Internet Explorer que se ejecuta en modo protegido puede leer claves / valores de registro de integridad media y baja del usuario actualmente conectado, pero solo puede modificar claves de baja integridad.
Fuera de la seguridad, las claves de registro no se pueden eliminar ni editar debido a otras causas. Las claves de 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.
Las diferentes ediciones de Windows han admitido varios métodos diferentes para realizar copias de seguridad y restaurar el registro a lo largo de los años, algunos de los cuales ahora están en desuso:
HKLM\SYSTEM\CurrentControlSet
clave, que almacena la información del controlador del dispositivo y del hardware.%Windir%\Sysbckup
Scanreg.exe también se puede ejecutar desde MS-DOS.RDISK.EXE
, una utilidad para realizar copias de seguridad y restaurar todo el registro.Windows 2000 y versiones posteriores de Windows utilizan la directiva de grupo para aplicar la configuración 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. La política se puede aplicar localmente a una sola computadora usando gpedit.msc
, oa múltiples usuarios y / o computadoras en un dominio usando gpmc.msc
.
Con Windows 95, Windows 98, Windows ME y Windows NT 4.0, los administradores pueden usar un archivo especial para fusionarlo en el registro, llamado archivo de política ( POLICY.POL
). El archivo de política 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 pantalla del escritorio. El archivo de políticas se utiliza principalmente en una empresa con una gran cantidad de computadoras donde la empresa necesita estar protegida de usuarios deshonestos o descuidados.
La extensión predeterminada del archivo de políticas es .POL
. El archivo de políticas filtra la configuración que aplica por usuario y por grupo (un "grupo" es un conjunto definido de usuarios). Para hacer eso, el archivo de políticas se fusiona con el registro, evitando que los usuarios lo eludan simplemente cambiando la configuración. El archivo de políticas generalmente se distribuye a través de una LAN, pero se puede colocar en la computadora local.
El archivo de política es creado por una herramienta gratuita de Microsoft que se conoce con el nombre poledit.exe
de archivo para Windows 95 / Windows 98 y con un módulo de administración de computadora para Windows NT. El editor requiere permisos administrativos para ejecutarse en sistemas que usan permisos. El editor también puede cambiar directamente la configuración de registro actual de la computadora local y si el servicio de registro remoto está instalado e iniciado en otra computadora, también puede cambiar el registro en esa computadora. El editor de políticas carga la configuración que puede cambiar a partir de .ADM
archivos, de los cuales se incluye uno, que contiene la configuración que proporciona el shell de Windows. El .ADM
archivo es texto sin formato 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 de registro como HKEY_CURRENT_USER mediante una función llamada "InifileMapping". Esta funcionalidad se introdujo para permitir que las aplicaciones heredadas escritas para versiones de Windows de 16 bits puedan ejecutarse en plataformas Windows NT en las que la carpeta Sistema ya no se considera una ubicación adecuada para la configuración o los datos específicos del usuario. Las aplicaciones de 32 bits que no cumplen con las normas también se pueden redirigir de esta manera, aunque la función se diseñó originalmente 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 de privilegio mínimo y en su lugar intentan escribir datos de usuario en una ubicación del sistema de solo lectura (como la colmena 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. Utilizado 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 de registro de los controles ActiveX a una ubicación de espacio aislado para frustrar algunas clases de vulnerabilidades de seguridad.
El kit de herramientas de compatibilidad de aplicaciones proporciona calces que pueden redirigir de forma transparente las operaciones de HKEY_LOCAL_MACHINE o HKEY_CLASSES_ROOT Registry a HKEY_CURRENT_USER para solucionar errores " LUA " que hacen que las aplicaciones no funcionen para usuarios con derechos insuficientes.
Los críticos etiquetaron el registro en Windows 95 como un punto único de falla, porque se requería reinstalar el sistema operativo si el registro se corrompía. Sin embargo, Windows NT utiliza registros de transacciones para protegerse contra daños durante las actualizaciones. Las versiones actuales de Windows utilizan dos niveles de archivos de registro para garantizar la integridad incluso en el caso de un corte de energía o eventos catastróficos similares durante las actualizaciones de la base de datos. Incluso en el caso de un error no recuperable, Windows puede reparar o reinicializar las entradas de registro dañadas durante el inicio del sistema.
En Windows, el uso del registro para almacenar datos de programas es una cuestión de discreción 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 pueden utilizar alternativas que no sean de Microsoft o desarrollar sus propios almacenes de datos patentados.
A diferencia del modelo de base de datos binario del Registro de Windows, algunos otros sistemas operativos utilizan archivos de texto plano separados para la configuración del demonio y la aplicación, pero agrupan estas configuraciones para facilitar la administración.
/etc/
y sus subdirectorios, o algunas 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./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 están en /System/Library/
. Dentro de estos directorios respectivos, una aplicación normalmente almacena un archivo de lista de propiedades en el Preferences/
subdirectorio.![]() | Wikilibros tiene un libro sobre el tema: Hacks de registro de Windows |