stringtranslate.com

Registro de Windows

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 .

Razón fundamental

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

Estructura de la clave de registro

Claves y valores

El registro contiene dos elementos básicos: claves y valores . Las claves del registro son objetos contenedores similares a las carpetas. Los valores del registro son objetos no contenedores similares a los archivos. Las claves pueden contener valores y subclaves. 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]

Claves raíz

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 se encuentra la configuración, se busca 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 a nivel de administrador para usar una aplicación. [a] [10]

HKEY_LOCAL_MACHINE (HKLM)

Abreviado como HKLM, HKEY_LOCAL_MACHINE 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 subclaves, "COMPONENTS" y "BCD", 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.

Raíz de clases de clave HKEY (HKCR)

HKEY_CLASSES_ROOT, abreviado como HKCR, contiene información sobre las aplicaciones registradas, como asociaciones de archivos e identificadores de clases de objetos OLE , y las vincula con las aplicaciones utilizadas para gestionar estos elementos. En Windows 2000 y versiones posteriores, HKCR es una compilación de HKCU\Software\Classes basadas en el usuario y HKLM\Software\Classes basadas en la máquina. Si existe un valor determinado en ambas subclaves anteriores, la de HKCU\Software\Classes tiene prioridad. [13] El diseño permite el registro específico de la máquina o del usuario de objetos COM .

HKEY_USERS (HKU)

Abreviado como HKU, HKEY_USERS contiene subclaves correspondientes a las claves HKEY_CURRENT_USER para cada perfil de usuario cargado activamente en la máquina, aunque las secciones de usuario generalmente solo se cargan para los usuarios que han iniciado sesión actualmente.

HKEY_CURRENT_USER (HKCU)

HKEY_CURRENT_USER, abreviado como HKCU, almacena configuraciones específicas del usuario que ha iniciado sesión en ese momento. [14] La clave HKEY_CURRENT_USER es un vínculo a la subclave de HKEY_USERS que corresponde al usuario; la misma información es accesible en ambas ubicaciones. La subclave específica a la que se hace referencia es "(HKU)\(SID)\..." donde (SID) corresponde al SID de Windows ; si la clave "(HKCU)" tiene el siguiente sufijo "(HKCU)\Software\Classes\..." entonces corresponde a "(HKU)\(SID)_CLASSES\..." es decir, la cadena de sufijo "_CLASSES" se agrega al (SID).
En los sistemas Windows NT, las configuraciones de cada usuario se almacenan en sus propios archivos llamados NTUSER.DAT y USRCLASS.DAT dentro de su propia subcarpeta Documents and Settings (o su propia subcarpeta Users en Windows Vista y versiones posteriores). Las configuraciones en esta sección siguen a los usuarios con un perfil móvil de una máquina a otra.

DATOS DE RENDIMIENTO DE HKEY

Esta clave proporciona información de tiempo de ejecución sobre los datos de rendimiento proporcionados por el propio núcleo NT o por los controladores, programas y servicios del sistema en ejecución que proporcionan datos de rendimiento. Esta clave no se almacena en ninguna sección y no se muestra en el Editor del Registro, pero es visible a través de las funciones del registro en la API de Windows, o en una vista simplificada a través de la pestaña Rendimiento del Administrador de tareas (solo para algunos datos de rendimiento en el sistema local) o a través de paneles de control más avanzados (como el Monitor de rendimiento o el Analizador de rendimiento que permite recopilar y registrar estos datos, incluso de sistemas remotos).

Datos de la clave HKEY_DYN

Esta clave se utiliza únicamente en Windows 95, Windows 98 y Windows ME . [15] Contiene información sobre dispositivos de hardware, incluidas las estadísticas de rendimiento de red y Plug and Play. La información de esta sección tampoco se almacena en el disco duro; la información de Plug and Play se recopila y configura al inicio y se almacena en la memoria. [16]

Urticaria

Aunque el registro se presenta como una base de datos jerárquica integrada, las ramas del registro 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.

Ubicaciones de archivos

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 %SystemRoot%\System32\config\; la sección del registro de usuario HKEY_CURRENT_USER específica del usuario se almacena dentro Ntuser.datdel 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.

Ventanas NT

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\:

El siguiente archivo se almacena en la carpeta de perfil de cada usuario:

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:

Para Windows Vista y versiones posteriores, la ruta se cambió a:

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.altsubárbol porque NTLDR en esas versiones de Windows puede procesar el System.logarchivo para actualizar un subárbol del sistema que se ha vuelto inconsistente durante un apagado o una falla. Además, la %SystemRoot%\Repaircarpeta 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]

Windows 9x

Los archivos de registro se almacenan en el %WINDIR%directorio con los nombres USER.DATy SYSTEM.DATcon la adición de CLASSES.DATen Windows ME. Además, cada perfil de usuario (si los perfiles están habilitados) tiene su propio USER.DATarchivo que se encuentra en el directorio de perfil del usuario en %WINDIR%\Profiles\<Username>\.

Ventanas 3.11

Se llama al único archivo de registro REG.DATy se almacena en el %WINDIR%directorio.

Windows 10 Móvil

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

Edición

Editores 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 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:

.REGarchivos

.REGLos 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 .REGson compatibles con Windows 2000 y posteriores. [26] El Editor del Registro de Windows en estos sistemas también admite la exportación .REGde archivos en formato Windows 9x/NT. [ cita requerida ] Los datos se almacenan en .REGarchivos 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 .REGlos 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. REGLos 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"

Políticas de grupo

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.

Edición de línea de comandos

El registro se puede manipular de varias maneras desde la línea de comandos . Las herramientas de utilidad Reg.exey RegIni.exese 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 .REGse 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 /smodificador también hace RegEdit.exeque se ignore la configuración del registro que permite a los administradores desactivarlo. Al utilizar el /smodificador, RegEdit.exeno se devuelve un código de retorno apropiado si la operación falla, a diferencia de Reg.exelo que sí ocurre con el modificador.

Archivo RegEdit.exe /e

exporta todo el registro en formato V5 a un .REGarchivo 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 .REGarchivo 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.exela 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

Comandos y scripts de PowerShell

Uso de PowerShell para navegar por el registro

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, diro 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]

Programas o scripts

El registro se puede editar a través de las API de la biblioteca de API base avanzada de Windows 32 (advapi32.dll). [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.RegistryTRegistry WScript.ShellReg.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.

Edición sin conexión

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

Autorregistro COM

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]

Funcionalidad avanzada

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 RegConnectRegistryfunció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]

Seguridad

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]

Copias de seguridad y recuperación

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:

Política

Política de grupo

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.msco a múltiples usuarios y computadoras en un dominio usando gpmc.msc.

Sistemas heredados

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.exepara 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 .ADMarchivos, de los cuales se incluye uno, que contiene la configuración que proporciona el shell de Windows. El .ADMarchivo es texto simple y admite una fácil localización al permitir que todas las cadenas se almacenen en un solo lugar.

Virtualización

Virtualización de archivos INI

Los núcleos de Windows NT admiten la redirección de las API relacionadas con archivos INI a un archivo virtual en una ubicación del registro como HKEY_CURRENT_USER mediante una función 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.

Virtualización del registro

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.

Desventajas

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]

Equivalentes y alternativas

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.

Véase también

Notas

  1. ^ Cuando las aplicaciones no se pueden ejecutar porque solicitan más privilegios de los que requieren (y se les niegan esos privilegios), esto se conoce como un error de aplicación de usuario limitado (LUA).

Notas al pie

  1. ^ Esposito, Dino (noviembre de 2000). "Registro de Windows 2000: las últimas características y API ofrecen la posibilidad de personalizar y ampliar sus aplicaciones". Revista MSDN . Microsoft. Archivado desde el original el 15 de abril de 2003. Consultado el 19 de julio de 2007 .
  2. ^ abc "El Registro del Sistema".
  3. ^ "Componentes de la arquitectura de Windows 95". www.microsoft.com . Archivado desde el original el 7 de febrero de 2008. Consultado el 29 de abril de 2008. La siguiente tabla muestra otras dificultades o limitaciones causadas por el uso de archivos .INI que se superan mediante el Registro.
  4. ^ Hipson 2002, pág. 5, 41–43.
  5. ^ Richter, Jeffrey; Nasarre, Christophe (2008). Windows a través de C/C++ (Quinta ed.). Prensa de Microsoft . ISBN 9780735642461. Recuperado el 28 de agosto de 2021 .
  6. ^ Raymond Chen , "¿Por qué las claves de registro tienen un valor predeterminado?"
  7. ^ Hipson 2002, págs. 207, 513–514.
  8. ^ Hipson 2002, págs. 520–521.
  9. ^ Hipson 2002, pág. 7.
  10. ^ "Especificación de aplicación diseñada para Windows XP". Microsoft . 20 de agosto de 2002 . Consultado el 8 de abril de 2009 .
  11. ^ "HKEY_LOCAL_MACHINE". Gautam. 2009. Consultado el 8 de abril de 2009 .
  12. ^ "Claves de registro afectadas por WOW64 (Windows)". Msdn.microsoft.com . Consultado el 10 de abril de 2014 .
  13. ^ "Descripción del registro de Microsoft Windows" . Consultado el 25 de septiembre de 2008 .
  14. ^ "HKEY_CURRENT_USER". Microsoft . 2009 . Consultado el 8 de abril de 2009 .
  15. ^ "Descripción de la clave de registro HKEY_DYN_DATA en Windows 95, Windows 98 y Windows 98 SE". support.microsoft.com .
  16. ^ "Una mirada más cercana a HKEY_DYN_DATA". rinet.ru . Archivado desde el original el 9 de mayo de 2008.
  17. ^ "Colmenas de registro" . Consultado el 19 de julio de 2007 .
  18. ^ Chen, Raymond (8 de agosto de 2011). "¿Por qué un archivo de registro se llama "colmena"?". The Old New Thing . Consultado el 29 de julio de 2011 .
  19. ^ "Descripción general del Registro de Windows NT" . Consultado el 2 de diciembre de 2011 .
  20. ^ "Dentro del Registro" . Consultado el 28 de diciembre de 2007 .
  21. ^ ab Norris, Peter (febrero de 2009). "La estructura interna del Registro de Windows" (PDF) . Universidad de Cranfield. Archivado desde el original (PDF) el 29 de mayo de 2009.
  22. ^ "Se muestran iconos incorrectos para archivos .ico". 15 de noviembre de 2009. Consultado el 31 de marzo de 2012 .
  23. ^ "¿Cómo desinstalar o eliminar por completo un programa de software en Windows sin utilizar software de terceros? - AskVG". www.askvg.com . 26 de agosto de 2011.
  24. ^ "Es posible que reciba un mensaje de error "STOP 0x00000035 NO_MORE_IRP_STACK_LOCATIONS" cuando intente iniciar sesión en un dominio". 9 de octubre de 2011 . Consultado el 31 de marzo de 2012 .Esta página le dice al usuario que edite el registro para resolver el problema.
  25. ^ El cambio de nombre de clave se implementa como eliminación y adición mientras se conservan las subclaves/valores, ya que las API subyacentes no admiten la función de cambio de nombre directamente
  26. ^ abcde "Cómo agregar, modificar o eliminar subclaves y valores del registro mediante un archivo .reg". support.microsoft.com .
  27. ^ "Aplicación de la directiva de grupo". Microsoft.
  28. ^ abc Payette, Bruce; Siddaway, Richard (2018). Windows PowerShell en acción (tercera edición). Manning Publications . págs. 7–8, 24, 608, 708–710. ISBN 9781633430297. Recuperado el 28 de agosto de 2021 .
  29. ^ Warner, Timothy L. (mayo de 2015). Windows PowerShell en 24 horas, Sams Teach Yourself. Sams Publishing . p. 19, 211. ISBN 9780134049359. Recuperado el 28 de agosto de 2021 .
  30. ^ "Lectura y escritura de valores del Registro con Visual Basic" . Consultado el 19 de julio de 2007 .
  31. ^ "Comando REG en Windows XP" . Consultado el 19 de julio de 2007 .
  32. ^ "Página del manual de registro – Paquetes Tcl incluidos". www.tcl.tk . Consultado el 14 de diciembre de 2017 .
  33. ^ "Biblioteca de registro sin conexión" . Consultado el 4 de junio de 2014 .
  34. ^ "Función DllInstall". Microsoft . 7 de marzo de 2012 . Consultado el 22 de marzo de 2012 .
  35. ^ "Regsvr32". Microsoft . Consultado el 22 de marzo de 2012 .
  36. ^ "Cómo registrar servidores de automatización". Microsoft . Consultado el 22 de marzo de 2012 .
  37. ^ "Cómo volver a registrar PowerPoint 2000, PowerPoint 2003, PowerPoint 2007 y PowerPoint 2010". Microsoft . Enero de 2012 . Consultado el 22 de marzo de 2012 .
  38. ^ "Función RegNotifyChangeKeyValue". Microsoft.
  39. ^ "Registro para recibir notificaciones". Microsoft.
  40. ^ "Función RegConnectRegistry". Microsoft.
  41. ^ "Cómo administrar el acceso remoto al Registro". Microsoft.
  42. ^ Gibson, Darril (28 de junio de 2011). "Capítulo 4: Protección del acceso con permisos". Seguridad de Microsoft Windows: aspectos esenciales . Indianápolis, Indiana: Wiley. ISBN 978-1-118-01684-8.
  43. ^ "Compatibilidad de aplicaciones: Protección de recursos de Windows (WRP)". Microsoft . Consultado el 8 de agosto de 2012 .
  44. ^ Marc Silbey, Peter Brundrett. "Comprender y trabajar en modo protegido en Internet Explorer" . Consultado el 8 de agosto de 2012 .
  45. ^ "RegDelNull v1.1". 1 de noviembre de 2006. Consultado el 8 de agosto de 2012 .
  46. ^ "No se pueden eliminar ciertas claves de registro – Error al eliminar la clave". 23 de marzo de 2010. Consultado el 8 de agosto de 2012 .Página de soporte de Microsoft.
  47. ^ "Descripción de la herramienta Comprobador del Registro de Windows (Scanreg.exe)".
  48. ^ "Opciones de línea de comandos para la herramienta Comprobador de registro".
  49. ^ "Cómo realizar copias de seguridad, editar y restaurar el Registro en Windows NT 4.0". support.microsoft.com .
  50. ^ "Referencia técnica del Registro: recursos relacionados". Microsoft . Consultado el 9 de septiembre de 2011 .
  51. ^ Whitwam, Ryan (julio de 2019). "Microsoft elimina las copias de seguridad automáticas del registro en Windows 10". ExtremeTech . Consultado el 1 de julio de 2019 .
  52. ^ "Cómo funciona la directiva de grupo principal". Microsoft . 2 de septiembre de 2009 . Consultado el 13 de agosto de 2012 .
  53. ^ "Capítulo 26: Archivos de inicialización y el Registro". Microsoft . Consultado el 3 de marzo de 2008 .
  54. ^ "Microsoft Application Compatibility Toolkit 5.0". Microsoft . Consultado el 26 de julio de 2008 .
  55. ^ ab Ionescu, Mark Russinovich, David A. Solomon, Alex (2012). "Registry Internals". Funcionamiento interno de Windows (6.ª ed.). Redmond, Washington: Microsoft Press. ISBN 978-0-7356-4873-9.{{cite book}}: CS1 maint: varios nombres: lista de autores ( enlace )
  56. ^ "Especificación de directorio base XDG". standards.freedesktop.org .
  57. ^ "Directorios de aplicaciones". Archivado desde el original el 27 de mayo de 2012 . Consultado el 17 de mayo de 2012 .
  58. ^ ab "Estudios de casos de las 132 principales molestias de los sistemas operativos distintos de RISC OS" . Consultado el 3 de abril de 2012 .Página del sitio web riscos.com. Mencionada en los puntos 82 y 104.
  59. ^ "Recorrido por el sistema operativo RISC" . Consultado el 19 de julio de 2007 .
  60. ^ "Directorio de productos de RISC OS". 2 de noviembre de 2006. Archivado desde el original el 19 de febrero de 2007. Consultado el 1 de abril de 2012 .
  61. ^ 3.2. Uso del Registro y Regedit (Guía del usuario de Wine)

Referencias

Enlaces externos