El Registro suscita miedo a muchos administradores de sistemas porque es el almacén central de los parámetros de configuración del sistema. Cometer errores mientras se edita el Registro puede tener consecuencias indeseables, pero su uso no difiere mucho del de un automóvil o máquina de coser. Todas las herramientas potentes producen consecuencias negativas si no se usan adecuadamente. Si se sabe lo que se está haciendo y se toman algunas precauciones simples, se puede sacar un gran provecho de una herramienta potente -como el Registro- sin miedo.

Introducción al Registro

El Registro es una base de datos binaria que organiza jerárquicamente todos los parámetros de configuración del sistema. Las aplicaciones, los componentes del sistema, los controladores de dispositivos e incluso el núcleo de Microsoft Windows 2000 utilizan el Registro para almacenar sus preferencias, leerlas de nuevo y obtener información acerca de la configuración hardware del sistema, las preferencias de usuario actuales y las configuraciones predeterminadas que deben usarse cuando no existen parámetros predefinidos (como por ejemplo, cuando un usuario nuevo inicia una sesión en el sistema por primera vez).

Orígenes del Registro

Anteriormente, en los años de Microsoft Windows 3.1, tanto las aplicaciones como Windows almacenaban la información de sus configuraciones en archivos .INI. Estos archivos eran fáciles de editar, lo cual era una bendición y una maldición -los usuarios podían realizar cambios fácilmente cuando era necesario, pero también podían efectuar cambios cuando éstos no eran necesarios-. La proliferación de aplicaciones Windows supuso el esparcimiento por las computadoras de docenas de archivos .INI, cada uno de ellos con su propia combinación de parámetros (sin que la mayoría de éstos pudiera ser documentado o incluso comprendido por personas que no fueran los propios programadores de la aplicación).

Windows NT 3.1 casi eliminó por completo los archivos .INI introduciendo el predecesor de lo que hoy se conoce como Registro de Windows 2000. El Registro de Windows NT 3.1 tenía algunas características de importancia que han continuado, o más o menos no han sufrido alteraciones, hasta Windows 2000.

Algunas de estas características también existen en Windows 95/98, que comparten los principios de organización del Registro de Windows NT sin sus características de seguridad y acceso remoto. Las dos familias de sistemas operativos (SO) utilizan formatos internos diferentes para sus bases de datos del Registro a pesar de que sus registros parecen similares para las herramientas de edición del Registro; sus archivos no son intercambiables ni interoperativos.

Quizás el aspecto más destacable del Registro de Windows 2000 es lo poco que ha cambiado con respecto a su versión anterior en Windows NT 4. Las estructuras binarias para almacenar los datos son las mismas.

Datos del Registro

La información del Registro se utiliza en seis áreas diferentes:

Hay que tener en cuenta que durante las fases de inicio, del núcleo o del controlador de dispositivos, el sistema no puede utilizar el disco --el sistema no puede « hablar» al disco hasta que se cargan los controladores de dispositivo-.

Microsoft advierte constantemente de que la edición del Registro es peligrosa; ¿es así realmente o simplemente se están cubriendo las espaldas? La respuesta se encuentra más o menos entre los dos extremos. Dado que el Registro se utiliza por casi cualquier parte de Windows 2000, y dado también que los programadores son perezosos a la hora de escribir código que compruebe los valores que provienen del Registro, cualquier cambio inadecuado o poco contrastado que se haga al Registro, puede provocar un gran daño a la máquina. Dicho esto, sin embargo, si se tiene cuidado y se presta atención, no hay razón alguna para temer al Registro. Algunas reglas simples ayudan a evitar los problemas bastante:

Estructura del Registro

En un sistema de archivos, los objetos raíz son discos que contienen carpetas o archivos. Una carpeta concreta puede contener un número arbitrario de otras carpetas y archivos; cada carpeta o archivo tiene un nombre. Combinando los nombres de las carpetas que incluyen un archivo, se puede construir un camino capaz de nombrar sin ambigüedad un único archivo del disco, de forma que, por ejemplo, C:\Windows\Mapi32.dll y C:\Winnt\Mapi32.dll sean dos archivos completamente distintos.

El Registro de Windows 2000 se encuentra organizado en gran parte como un sistema de archivos, si bien el vocabulario necesario para su descripción es algo diferente. En la raíz de la estructura del Registro se encuentran las claves predefinidas (comparables con los discos en el sistema de archivos). Cada clave predefinida contiene varias subclaves (carpetas); continuando, estas subclaves contienen otras subclaves y valores (las que equivalen en el Registro a los archivos). Al igual que pasa con los archivos, cada valor tiene un nombre que debe ser único en la subclave o carpeta que lo contiene; cada valor tiene un tipo de datos asociado que rige el tipo de datos que puede soportar.

Cualquier valor del Registro puede identificarse especificando su camino completo comenzando desde la raíz. Por ejemplo, el camino 
HKEY_LOCAL_MACHINE
        \SOFTWARE
            \Microsoft
                \Exchange
                    \Security
                        \ObscureWireDataFormat
especifica un valor concreto en la subclave de Security perteneciente a Microsoft Exchange Server.

Las claves predefinidas

Cuando se abre el icono Mi PC en el escritorio, siempre se ven ciertos elementos, como los iconos que representan los volúmenes de disco lógicos de la computadora. Lo mismo se aplica al Registro. Cuando éste se abre con un Editor del Registro, siempre se observa el mismo conjunto de claves predefinidas. Cada clave predefinida tiene un propósito diferente:

En la documentación de Windows 2000, Microsoft identifica únicamente dos claves predefinidas: HKEY_LOCAL_MACHINE y HKEY_USERS. Dado que HKEY_CURRENT_USER, HKEY_CURRENT_CONFIG y HKEY_CLASSES_ROOT son realmente punteros a subclaves de HKEY_LOCAL_MACHINE y HKEY_USERS, esto es técnicamente correcto, pero uno podría confundirse si se adhiere a la idea de la existencia de cinco clases predefinidas separadas. Para evitar dicha confusión, se utilizará la notación antigua.

Un cambio importante en el Registro de Windows 2000 implica a HKEY_CLASSES_ROOT. En Windows NT 4 y sus versiones anteriores, la información en HKEY_CLASSES_ROOT es la misma para todos los usuarios. De alguna forma, ésta fue una decisión de diseño razonable que toma Microsoft (todos los usuarios de una máquina tienen acceso al mismo conjunto de componentes OLE instalados y a la misma correspondencia de archivos).

Sin embargo, una de las quejas más comunes expresadas por los administradores cuyos usuarios debían compartir máquinas era que las asociaciones predeterminadas de dos usuarios podían diferir bastante. Si un usuario elige Netscape Navigator como navegador Web predeterminado, ello modifica el HKEY_CLASSES_ROOT; si un usuario selecciona posteriormente Internet Explorer como navegador predeterminado para la misma máquina, esto elimina la elección original. Y lo que es más importante, la habilidad de los usuarios para cambiar estos valores reduce la seguridad del sistema de dos formas: permite que los usuarios puedan cambiar las asociaciones de otros usuarios (incrementando el riesgo de introducir código malicioso) y fuerza a los administradores a quitar permisos de HKEY_LOCAL_MACHINE\SOFTWARE\Classes, dado que todos los usuarios necesitan acceder a él.

Microsoft ha modificado este comportamiento en Windows 2000 de tal forma que el HKEY_CLASSES_ROOT contiene información procedente de dos fuentes: el perfil de usuario (donde se guardan las personalizaciones específicas del usuario) y HKEY_LOCAL_MACHINE\,SOFTWARE\Classes, donde residen los parámetros globales del sistema. Los usuarios pueden registrar y eliminar componentes COM, cambiar la asociación de archivos, etc., sin que esto afecte a otros usuarios. Los administradores pueden ajustar los permisos en HKEY_LOCAL_MACHINE\SOFTWARE\Classes de tal forma que los usuarios no puedan entrometerse con los parámetros globales de sistema que se quiere que tengan. 

Subclaves principales

Dentro de las claves predefinidas, existen varias subclases cuya notación es importante. Como cada clave predefinida tiene tanta información por debajo, es normal referirse a estas subclases individuales directamente -después de todo, HKEY_LOCAL_MACHINE\HARDWARE y HKEY_LOCAL_MACHINE\SOFTWARE no tienen mucho en común, exceptuando su clave predefinida.

HKEY_LOCAL_MACHINE\HARDWARE

La subclave HKEY_LOCAL_MACHINE\HARDWARE almacena la información del hardware que se encuentra en el sistema. Todos los valores que se almacenan aquí se mantienen sólo en la RAM, no en el disco, debido al ordenamiento del controlador de dispositivos mencionado anteriormente. Cuando el reconocedor de hardware se ejecuta, enumera todos los dispositivos que encuentra al explorar los buses del sistema y buscar clases específicas de dispositivos, como puertos paralelos o teclados. Por debajo de HKEY_LOCAL_MACHINE\HARDWARE subyacen tres subclases importantes:

Dependiendo de la configuración de la máquina, es posible que existan otras subclaves adicionales. Por ejemplo, los sistemas que soportan Advanced Configuration Power Interface (ACPI) disponen de una subclase ACPI que contiene información sobre las subclases ACPI concretas que la computadora soporta.

HKEY_LOCAL_MACHINE\SAM

El hecho de que Windows 2000 incluya el servicio de directorio Active Directory no implica que no queden vestigios de Security Accounts Manager (SAM). Cuando se crean cuentas locales o grupos en Windows 2000, éstos se almacenan en HKEY_LOCAL_MACHINE\SAM al igual que se hace en Windows NT. Sin embargo, aunque no es posible editar o visualizar la información de esta subclave, sí resulta muy útil para la compatibilidad con código de versiones antiguas de NT que da por hecho la existencia de SAM. Las rutinas de programación que acceden a la información de SAM se han reconstruido para que utilicen Active Directory cuando éste exista, o SAM si no existe un servidor Active Directory.

HKEY_LOCAL_MACHINE\SECURITY

Tal y como uno espera, HKEY_LOCAL_MACHINE\SECURITY contiene gran cantidad de información sobre seguridad. Su formato no está documentado y no es posible realizar nada en la subclave. Sin embargo, las credenciales caché de inicio de sesión del sistema, las políticas de configuración y los secretos sobre servidores compartidos residen en esta subclave. La subclave SECURITY\SAM contiene una copia de casi toda la información de HKEY_LOCAL_MACHINE\SAM.

Si uno siente curiosidad por saber lo que hay en HKEY_LOCAL_MACHINE\SAM y HKEY_LOCAL_MACHINE\SECURITY, es posible abrir estas dos claves ejecutando Regedt32 en el contexto de seguridad LocalSystem. La forma más fácil de realizar esto es utilizando el comando At para programar que Regedt32 se ejecute en una sesión interactiva. Basta con programarlo para que se ejecute más o menos durante un minuto en el futuro de la siguiente forma:

at 12:34 /interactive regedt32.exe

El comando advierte al sistema para que programe la ejecución de Regedt32 en un minuto a partir de ese momento (esto se escribe a las 12:33); cuando se ejecuta, el servicio de programación del sistema inicia la aplicación de forma que se ejecute en el contexto LocalSystem en lugar del contexto en el que uno tenga actualmente abierta la sesión. A pesar de que ésta es una forma interesante de ver lo que hay en estas subclaves, hay que estar prevenido de dos cosas. La primera es que los valores que se encuentran en estas subclaves no tendrán mucho sentido para el usuario, puesto que han sido intencionadamente ocultados. La segunda, y más importante, es que no hay que olvidar que el cambio de uno de estos valores provocará casi con toda seguridad consecuencias indeseables no intencionadas. En otras palabras, se mira, pero no se toca.

HKEY_LOCAL_MACHINE\SOFTWARE

La subclave HKEY_LOCAL_MACHINE\SOFTWARE se utiliza como ubicación raíz para el almacenamiento de las configuraciones generales de las aplicaciones y componentes del sistema. Por ejemplo, HKEY_LOCAL_MACHINE\ SOFTWARE\Microsoft\EnterpriseCertificates contiene claves que almacenan las Listas de confianza de certificados (Certificate Trust List, CTL) y los certificados de confianza CCA de la máquina -los certificados CCA y CTL de usuarios particulares se almacenan en otro sitio-. Los programas individuales, los paneles de control y similares pueden crear sus propias subclaves bajo HKEY_LOCAL_MACHINE\SOFTWARE; el estándar predeterminado es que cada fabricante cree su propia clave en el nivel superior (por ejemplo, HKEY_LOCAL_MACHINE\SOFTWARE\Intel) para después crear subentradas por debajo de dicha clave.

Las partes más interesantes de esta subclave son HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ Windows\CurrentVersion (que almacena la mayor parte de la información preferente de la GUI; su nombre es el mismo que el de la correspondiente clave de Windows 95/98) y HKEY_LOCAL_MACHINE\ SOFTWARE\Microsoft\Windows NT\CurrentVersion. Esta última subclave se ha expandido considerablemente en Windows 2000; por ejemplo, existen nuevas claves para el manejo de la recuperación automática del servidor, el Sistema de archivos de cifrado, el Editor de configuración de seguridad, Terminal Services y otras nuevas características.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet

Cuando se inicia Windows 2000, la última acción que se realiza en la fase de inicio es la actualización del Registro para que refleje el conjunto de controles y servicios que se usaron por última vez para iniciar la máquina con éxito. CurrentControlSet siempre apunta al conjunto de controles que se encuentra actualmente en uso en el sistema. Si se mira en HKEY_LOCAL_MACHINE\SYSTEM, se observan principalmente claves del tipo ControlSetXXX. Cada subclave ControlSetXXX representa un conjunto de control que existió alguna vez, sin importar si se ha utilizado con éxito para iniciar la máquina. CurrentControlSet no es más que un puntero al conjunto de inicio con éxito más reciente, pero dado que no es fácil determinar qué conjunto era ése, el sistema operativo y las aplicaciones utilizan CurrentControlSet en su lugar.

Por debajo de este conjunto existen cuatro claves que heredan sus nombres de versiones anteriores de Windows NT, si bien sus entresijos difieren bastante en comparación con Windows 2000:

HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices

Los volúmenes de discos dinámicos de Windows 2000 son un gran logro técnico y un regalo para los administradores, pero su funcionamiento se basa en tener una configuración actual de los volúmenes lógicos en disco. Las aplicaciones (y complementos, como el complemento de Administración de archivos) toman esta información del servicio de Administración de volúmenes lógicos; de hecho, este servicio almacena su lista de dispositivos montados y disponibles en la subclave MountedDevices.

Almacenamiento de datos

A pesar de que los programas y servicios que utilizan el Registro no tienen por qué comprender cómo se almacena la información del Registro, los administradores sí deben saberlo -de esta forma es posible saber dónde se almacenan los datos, cómo utiliza el Registro los diferentes tipos de datos, así como qué archivos deben ser salvaguardados como parte de las copias de seguridad-. No es necesario conocer los formatos internos que utilizan las herramientas del Registro, pero sí los tipos de datos básicos y las ubicaciones de almacenamiento.

Cada valor del Registro (al cual Microsoft denomina entradas de valor) tiene tres partes: un nombre, un tipo de datos y un valor actual. Por ejemplo, si se mira un artículo de Microsoft Knowledge Base que hable sobre cierta clave -REG_SZ: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Replicator\Parameters\GuardTime, por ejemplo-, es posible observar una definición completa de una entrada de valor (aunque siempre esté bien ver un camino completo para los valores para saber dónde añadirlos o eliminarlos).

Tipos de datos útiles

Para almacenar datos en el Registro, es posible utilizar siete tipos de datos. Realmente sólo se suelen utilizar dos tipos para almacenar la mayor parte de la información del Registro: REG_DWORD y REG_SZ. Los siete tipos son:

En la administración rutinaria, bastará con saber la diferencia existente entre los valores REG_DWORD y REG_SZ. Un valor REG_DWORD cuyo contenido sea 0 (el valor numérico 0) es distinto de un valor REG_SZ cuyo contenido sea « 0» (el carácter "0"). Si es necesario añadir un nuevo valor de Registro (quizás porque un artículo de Microsoft Knowledge Base recomiende hacerlo), habrá que asegurarse de utilizar el tipo correcto si no se quiere tener problemas con los componentes que utilicen dicho valor.

Claves volátiles

Algunas claves y valores de registro son volátiles en el sentido original de la palabra -es decir, no son persistentes y pueden evaporarse en cualquier momento-. Como ejemplo, ninguna de la información en HKEY_LOCAL_MACHINE\HARDWARE existe en ninguna parte del disco; la subclave completa y todos sus contenidos residen completamente en memoria. Cada vez que se inicia una máquina con Windows 2000 se crea una nueva subclave, y cuando se cierra el sistema sus contenidos desaparecen.

Claves basadas en disco

Las claves volátiles son útiles para guardar la información que no necesita permanecer entre los distintos reinicios de la máquina, pero la mayor parte de los datos almacenados en el Registro no servirían de mucho si no fueran persistentes. Basta con imaginarse el tener que reconfigurar todas las preferencias y configuraciones siempre que se reinicia la máquina, lo que la haría caducar pronto. La mayor parte de las claves de registro están basadas en disco, lo cual significa que sus contenidos se guardan en las estructuras del disco. Siempre que se actualiza el contenido de alguna clave, la versión de disco hace lo propio.

A pesar de que las claves basadas en disco se guardan eventualmente en el disco, Windows 2000 las hace corresponder con un conjunto de memoria paginado (un área de la memoria cuyos contenidos pueden escribirse al archivo de página cuando éste no se esté usando) para conseguir un acceso más eficiente. El límite de tamaño del Registro, regula la cantidad de información que puede almacenarse en el conjunto paginado.

Situación de la información en el disco

Microsoft utiliza el término «sección» para referirse a un grupo de claves y valores que deben permanecer juntos. Una sección puede ser una clave raíz o una subclave; por ejemplo, HKEY_CURRENT_CONFIG es una sección (a pesar de que sea sólo un puntero a una parte de HKEY_LOCAL_MACHINE), al igual que pasa con HKEY_LOCAL_MACHINE\SAM. El concepto importante que hay que recordar sobre las secciones es que una sección es una unidad independiente que puede cargarse y descargarse independientemente de otras secciones.

Windows 2000 utiliza seis secciones: 

Cada sección se almacena en su propio archivo en el disco (los archivos tienen los mismos nombres que las secciones), conjuntamente con un archivo de registro separado que se comporta como un diario que informa sobre todos los cambios que ha sufrido la sección. Los archivos de sección no tienen extensiones y el sistema los mantiene abiertos todo el tiempo; por ello, es necesario utilizar una herramienta especial de copia de seguridad o ARCServe para copiarlos.

Entonces, ¿dónde residen estos archivos de sección? A1 igual que sucede con otras cuestiones relativas a Windows 2000, la respuesta es un «depende». En este caso, la respuesta depende de los archivos de sección de los que se esté hablando. Los cinco grandes (DEFAULT, SAM, SECURITY, SOFTWARE y SYSTEM), al igual que sus archivos .LOG, se guardan en la subcarpeta System32\Config de la carpeta Install de Windows 2000.

La ubicación de los archivos de perfil de usuario (Ntuser.dat y Ntuser.dat.log para el usuario que se encuentre actualmente conectado, y Default y Default.log para el usuario predeterminado) depende del sistema operativo que existía en la máquina antes de instalar Windows 2000. Las máquinas que se actualizaron desde Windows NT 4, o aquellas en las que se instaló Windows 2000 limpiamente, guardan estos perfiles en la subcarpeta Profiles\Username de la carpeta raíz del sistema. (Cada usuario tiene su propia subcarpeta.) Para las máquinas en las que se actualizó desde Windows 95 o Windows 98, los perfiles se guardan en una carpeta definida por el usuario en la carpeta Documents and Settings.

Editores del registro

Cuando se necesite cambiar algún valor en el Registro, habrá que utilizar algún tipo de editor del Registro. Muchos de los parámetros que se cambian en los paneles de control, objetos de Políticas de grupo o complementos MMC se guardan realmente en el Registro, por eso estas utilidades pueden verse como un tipo de editor del Registro. Otro tipo es un guión escrito a medida que se utiliza para hacer un cambio específico, quizás como una parte del guión de inicio o un archivo que se distribuye a los usuarios. Sin embargo, la mayor parte de las veces que se quiera realizar un cambio directamente en el Registro, se utilizará una de las dos herramientas que Microsoft incluye con Windows 2000: Regedt32.exe o Regedit.exe.

¿Por qué hay dos editores del Registro en Windows 2000? Por culpa de Windows NT 4. Las distribuciones de Windows NT 3.1, 3.5 y 3.51 incluían un editor del Registro denominado Regedt32. Esta herramienta se construyó para manipular las claves y valores del Registro de Windows NT y refleja los estándares para el diseño de interfaces de Microsoft de la época en la que fueron escritos (1992 más o menos).

Cuando se desarrollaba Windows 95, Microsoft se percató de que Regedt32 no era una apuesta acertada para la interfaz de Windows 95 o para las diferencias estructurales subyacentes entre los registros de los dos sistemas. Dado que Windows 95 necesitaba un editor del Registro también, Microsoft desarrolló una herramienta de acompañamiento, Regedit, y la distribuyó con Windows 95.

Para complicar más aún las cosas, Microsoft incluye ambas, Regedt32 y Regedit con Windows NT 4. A pesar de que esto pudiera parecer innecesariamente redundante, es realmente una ventaja, dado que los dos programas poseen habilidades distintas que se complementan. Microsoft continuó distribuyendo ambas herramientas como parte de Windows 2000; exceptuando algunos pequeños maquillajes y el arreglo de algunos fallos relacionados con sus tripas, las versiones de Windows 2000 son idénticas a sus predecesoras.

Regedit y Regedt32

Con dos editores donde poder elegir, ¿cómo saber cuál utilizar en una determinada circunstancia? Ambas herramientas poseen las mismas capacidades fundamentales. Permiten:

Sin embargo, sí hay algunas diferencias significativas que se enmarcan en la existencia de ciertas funcionalidades en un editor pero no en el otro. Comencemos con Regedt32. Dado que se diseñó específicamente para Windows NT, presenta algunas funcionalidades muy útiles que se han extendido a Windows 2000:

En cambio, está Regedit, que fue diseñado para hacer uso de la interfaz del estilo Windows 95, por lo que se diferencia un poco de Regedt32. También posee una funcionalidad diferente:

¿Cómo saber qué herramienta utilizar? La mayor parte de las veces las preferencias personales de cada uno dictarán la elección. A algunas personas les gusta la forma en que trabaja Regedit, mientras que otras prefieren la interfaz de la vieja escuela de Regedt32. Si se busca la clave que contiene un determinado valor, es mejor utilizar Regedit; por otra parte, si lo que se pretende es asignar permisos de seguridad a una clave, se tendrá que utilizar Regedt32.

Regedit

Cualquier usuario del Explorador de Windows (o de cualquier versión de Windows) conoce el 85 por 100 de lo que se necesita para utilizar Regedit. Esta familiaridad se traduce enteramente a través del diseño -Microsoft ha intentado que sea una herramienta fácil de usar y por eso ha copiado la interfaz con la que los usuarios ya están familiarizados.

Las partes importantes de la interfaz son claramente fáciles de entender. Resaltaremos las siguientes características:

Dado que estas características de interfaz están escritas con los controles estándar de Windows, toda la navegación con el teclado y la combinación de teclas de control que uno está acostumbrado a utilizar en el Explorador de Windows funcionan aquí también. Por ejemplo, es posible saltar a una clave particular pulsando en algún sitio del panel izquierdo y escribiendo las primeras letras del nombre de la clave. Y también se pueden utilizar los cursores para moverse por cualquier panel de la ventana Regedit.

Búsqueda de claves y valores

El comando Buscar en el menú Edición en Regedit vale su peso en oro cuando se necesita buscar qué clave o valor tiene un nombre o entrada específica. La interfaz de esta función no es complicada. A pesar de la sencillez de la interfaz, esta herramienta es extremadamente útil. pues permite buscar un valor determinado por todo el Registro. La forma de conseguir lo que uno busca a través del cuadro de diálogo Buscar es la siguiente:

Cuando se hayan realizado las selecciones en el cuadro de diálogo Buscar, hay que presionar Buscar siguiente para que Regedit comience la búsqueda. Eventualmente ocurrirá alguna de estas dos cosas: o bien Regedit alcanzará el final del Registro (en cuyo caso comunicará que no se encontró ninguna coincidencia), o bien encontrará una coincidencia. En el último caso, se resaltará dicha coincidencia; si la coincidencia no es exactamente lo que se andaba buscando, el comando Buscar siguiente en el menú Edición (o F3, su acelerador) continuará la búsqueda.

Cada vez que se realiza una búsqueda, Regedit comienza al principio de HKEY_CLASSES_ROOT y se abre camino hasta el final de HKEY_CURRENT_CONFIG. No es posible cambiar este orden de búsqueda, por lo que es mejor acostumbrarse a él.

Edición de las entradas de valor

El comando Modificar del menú Edición permite cambiar los contenidos de la entrada de valor seleccionada (también es posible editar un valor seleccionándolo y presionando INTRO). Lo que se ve después depende del tipo de valor que se esté editando; existen cuadros de diálogo de edición diferentes para los valores de cadena, los valores DWORD y los valores binarios. Regedit permite la edición de tipos de datos que no soporta, como por ejemplo, REG_FULL_RESOURCE_DESCRIPTOR o REG_MULTI_SZ; para estos tipos, Regedit abre el cuadro de diálogo del editor binario. Los cuadros de diálogo de edición son directos, esto es, cada uno presenta el valor actual y permite su edición. Las combinaciones de teclas para los comandos Cortar, Copiar y Pegar también funcionan en los cuadros de diálogo de edición.

Adición y eliminación de claves y valores

Regedit permite también la adición y eliminación de claves, subclaves y valores individuales. Ahora es un buen momento para reiterar el frecuente aviso de Microsoft: la realización de cambios innecesarios en el Registro puede dañar la computadora. Hay que ser cuidadoso a la hora de añadir información y doblemente cuidadoso a la hora de eliminarla. Para agregar una nueva clave como hijo de una clave seleccionada, hay que abrir el menú Edición, apuntar a Nuevo y elegir Clave. Regedit creará una nueva clave y seleccionará su nombre para que se pueda configurar correctamente (el valor predeterminado es Clave nueva #1).

La nueva clave tendrá automáticamente un valor asociado no establecido. Es posible añadir nuevos valores utilizando alguno de los tres comandos restantes en el submenú Nuevo: valor alfanumérico, valor binario y valor DWORD. No hay que olvidar que Regedit no puede crear ningún otro tipo de datos, y si se crea un valor binario, los componentes lo interpretarán como un dato no procesado de tipo REG_BINARY Cuando se crea un nuevo valor, éste se añade como un hijo de la clave seleccionada y se le asigna un nombre predeterminado (Valor nuevo #1, Valor nuevo #2, etc.), el cual puede ser inmediatamente cambiado. Una vez que se ha terminado de añadir y nombrar los nuevos valores, se pueden utilizar los cuadros de diálogo de edición estándar para cambiar sus contenidos por los valores apropiados.

La eliminación de valores y claves es sencilla. Basta con seleccionar el objeto que se desea eliminar y seleccionar Eliminar en el menú Edición o simplemente pulsar la tecla SUPR. Regedit pedirá entonces una confirmación para ejecutar el comando; una vez confirmada, la clave o valor se eliminará inmediatamente.

Importación y exportación de información del Registro

Es posible importar y exportar información del Registro desde Regedit. Los archivos de texto resultantes son fáciles de leer, y es posible moverlos de manera segura de una máquina a otra. De hecho, la asociación predeterminada para los archivos .REG inicia automáticamente Regedit y carga el contenido del archivo cuando se pulsa dos veces sobre éste. El comando Exportar archivo del Registro en el menú Registro permite guardar la clave seleccionada en un archivo, y el comando Importar archivo del Registro hace lo inverso. La importación de archivos del Registro desde Regedit sucede inmediatamente, es decir, aparece un cuadro de diálogo de confirmación para indicar si la importación ha culminado con éxito o no, pero no es posible pararla. Sin embargo, si se inicia un archivo .REG pulsando sobre él, sí se muestra un cuadro de diálogo de confirmación.

Conexión al Registro de una máquina remota

Si se ha iniciado una sesión con los permisos adecuados, se puede utilizar Regedit para conectarse al Registro de otra computadora para inspeccionarlo o editarlo. Para conseguirlo es necesario disponer de privilegios de administración en ambas máquinas, la máquina donde se ha iniciado una sesión y la otra máquina cuyo Registro se quiere inspeccionar/editan Es más, la Directiva de grupos puede impedir este acceso. Asumiendo que las credenciales se encuentran en orden, la conexión a la máquina remota se realiza realmente seleccionando Conectarse al Registro de red en el menú Registro. Este comando permite explorar la red para encontrar la máquina a la que desea conectarse; una vez que se haya realizado la conexión con éxito, aparece el nombre de la computadora en el panel izquierdo al mismo nivel que Mi PC. A partir de aquí es posible expandir su clave raíz, fisgar en las subclaves, buscar y modificar los datos. Cuando se termine, hay que elegir Desconectar del Registro de configuraciones de red en el menú Registro para seleccionar la computadora de la que quiere desconectarse.

Cambiar nombres de claves y valores

Es posible cambiar el nombre de una clave o valor seleccionando Cambiar nombre en el menú Edición. En la mayoría de los casos, no se querrá ni se necesitará hacer esto. Dado que el software busca valores de nombre específicos, cambiar el nombre de uno de ellos no es una buena idea. Sin embargo, cuando se añaden claves o valores basándose en las recomendaciones de los artículos de Microsoft Knowledge Base, es posible que se deletree mal el nombre (o incluso peor, teclearlo correctamente pero descubrir que el nombre en el artículo de Knowledge Base es ¡erróneo!), y el comando Cambiar nombre se convierte entonces en la única alternativa posible para borrar y reproducir la clave.

Regedt32

Regedt32 es una herramienta más sofisticada y potente que Regedit, pero un poco más compleja de utilizar. Se puede observar que el interfaz de usuario no se asemeja al Explorador de Windows. Esto se debe a que Regedt32 utiliza el interfaz MDI antiguo donde cada clave raíz tiene su propia ventana hija. Esta composición es realmente una ventaja, ya que permite hacer iconos de las ventanas que no se estén utilizando (especialmente cuando se conecta con una máquina remota).

Edición de entradas de valor

Para editar un valor, basta con pulsar sobre él dos veces. Esto hace que el cuadro de diálogo del editor apropiado se abra. Esto es bastante fácil y los editores son fáciles de comprender -exceptuando el editor de REG_FULL_RESOURCE_DESCRIPTOR-. Pero no importa, ya que no se deben editar elementos en HKEY_LOCAL_MACHINE\HARDWARE de todas formas, especialmente dado que las modificaciones no se guardan.

Regedt32 también permite editar un elemento como si fuera de un tipo diferente. Por ejemplo, es posible editar un REG_SZ como información binaria o un REG_DWORD como una cadena. La mayor parte de las veces esto no resultará de gran utilidad, pero quizás algún día se pueda aprovechar esta funcionalidad para hacer algo, como editar una máscara de bits guardada como un REG_DWORD. Para editar se deben usar los cuatro comandos del menú Edición: hay uno por cada tipo de dato (Binario, Cadena, DWORD y Cadena múltiple).

Cuando se utilicen estos editores de tipos de datos, no conviene olvidar que:

Al igual que ocurre con Regedit, Regedt32 no comprueba la legalidad de los valores que se introducen; por eso el usuario debe asegurarse de que éstos son correctos.

Adición de claves y valores

Para añadir una clave, se selecciona la clave por debajo de la cual se quiere que aparezca. Por ejemplo, para añadir una subclave a HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ESENT, se tendría que seleccionar la clave y después elegir Agregar clave en el menú Edición. Esto abre un cuadro de diálogo donde se puede introducir el nombre de la nueva clave. Una vez que ésta haya sido nombrada, la nueva clave aparece inmediatamente.

Al contrario que Regedit, Regedt32 no añade automáticamente un valor sin nombrar a la nueva clave, por lo que si se necesita el valor predeterminado por alguna razón, se tendrá que añadir manualmente. Para añadir un valor, se utiliza el comando Agregar valor en el menú Edición. Para añadir un valor, hay que realizar los siguientes pasos:

  1. Seleccionar la clave a la que se quiere agregar el valor y después utilizar el comando Agregar valor. Esto hace que se muestre el cuadro de diálogo Agregar valor.
  2. Introducir el nombre del nuevo valor en el cuadro de texto Nombre de valor. (Dejarlo en blanco si se quiere añadir el valor predeterminado <No Name>.)
  3. Utilizar el cuadro de lista Tipo de datos para seleccionar el tipo del nuevo valor. Presionar el botón Aceptar. El cuadro de diálogo del editor de tipos apropiado aparece; el tipo de editor que se muestre depende del tipo especificado en el campo Nombre de valor.
  4. Introducir el dato que se quiera almacenar en el valor y a continuación presionar Aceptar para guardar el nuevo valor, o Cancelar para dejar el Registro intacto.
Eliminación de claves y valores

Regedt32 permite eliminar claves (y todos sus elementos subordinados) o un simple valor -basta con seleccionar el elemento a eliminar y a continuación presionar la tecla SUPR (o seleccionar Eliminar en el menú Edición)-. Regedt32 pide una confirmación de lo que se está realizando de manera predeterminada; si se prefiere, es posible ahorrarse este paso deshabilitando el comando Confirmar eliminación en el menú Opciones (aunque se recomienda encarecidamente que se deje habilitado).

Carga, descarga e importación de datos del Registro

Regedt32 ofrece dos formas de intercambiar información entre el Registro y un archivo de disco externo. La primera es cargando y guardando conjuntos individuales de claves con los comandos del Registro Guardar clave y Restaurar, y la segunda es cargando y descargando archivos de sección enteros con los comandos Cargar sección y Descargar sección (en el menú Registro).

¿Cuál es la diferencia? Hay que recordar que los archivos de sección son entidades autónomas que contienen un conjunto particular de claves. Cuando se guarda una clave con el comando Guardar clave, realmente se está creando un nuevo archivo de sección que coexiste con las secciones predefinidas al mismo nivel expuestas anteriormente en el capítulo. Posteriormente, la sección puede recomponerse de dos formas: creando una nueva clave dentro de la sección existente (esto es lo que hace el comando Cargar sección) o sobrescribir una clave con los contenidos de la sección guardada tal y como hace Restaurar.

Crear una nueva sección con un conjunto de claves guardadas es fácil: basta con seleccionar la clave que se quiera guardar y a continuación elegir el comando Guardar clave en el menú Registro. Cuando se indique, se introduce el nombre del nuevo archivo de sección y Regedt32 se encarga de guardarlo. La sección no podrá guardarse si no se dispone de los permisos adecuados para todas las subclaves de la clave seleccionada; por ejemplo, incluso cuando se inicia una sesión como administrador, no es posible guardar HKEY_LOCAL_MACHINE\HARDWARE a una sección.

Una vez que se ha guardado el archivo de sección, es posible cargarlo dentro de una nueva clave o por encima de una clave que ya existe. Para cargar el archivo de sección en una nueva clave, hay que seleccionar la clave raíz HKEY_LOCAL_MACHINE o HKEY_USERS y a continuación elegir Cargar sección en el menú Registro. (El resto del tiempo esta opción se encuentra deshabilitada.) Cuando se indica, se escoge el archivo de sección que se quiere cargar y el nombre de la nueva clave donde éste se va a cargar.

Para cargar un archivo de sección por encima de una clave existente, hay que seleccionar la clave que se quiera sobrescribir y a continuación elegir Restaurar en el menú Registro; una vez que se haya elegido el archivo y se haya confirmado que se está preparado para eliminar la clave seleccionada, Regedt32 cargará la sección y reemplazará todos los contenidos que existen en las claves con los contenidos de la sección (siempre, naturalmente, que se disponga de los permisos para poder realizar esto).

Por ejemplo, pongamos que se guardan los contenidos de HKEY_LOCAL_MACHINE\SOFTWARE\AOL en un archivo de sección. Si se selecciona HKEY_LOCAL_MACHINE y se utiliza el comando Cargar sección, se puede crear una nueva clave (denominada, quizás, AOL) donde se guardan los contenidos originales. Si se selecciona la copia existente de HKEY_LOCAL_MACHINE\SOFTWARE\AOL y se utiliza el comando Restaurar, entonces todo lo que haya en la clave antes de restaurar el archivo se pierde.

Conexión al Registro de una máquina remota

Para conectarse a una máquina remota utilizando Regedt32, hay que elegir Seleccionar equipo en el menú Registro. El cuadro de diálogo Seleccionar equipo se abre para que se pueda seleccionar el dominio o grupo de trabajo deseado y el Registro de la máquina que se quiera administrar. Una vez hecho esto, si se dispone de acceso administrativo a la máquina, se estará conectado; es posible que se visualice un cuadro de diálogo en el que se advierte de que las claves del Registro de la máquina remota no se cambiarán automáticamente. Cuando se cierra este mensaje de confirmación, aparecen otras dos ventanas MDI: una para HKEY_LOCAL_MACHINE y otra para HKEY_USERS. Cada título de cada ventana incluye el nombre de la máquina remota (por ejemplo, HKEY_LOCAL_MACHINE en FALCON) para que se pueda identificar qué tipo de información se encuentra en cada una de ellas.

Una vez que se hayan abierto estas ventanas, se puede navegar y editar de la misma forma que en la máquina local (condicionado, naturalmente, a que se disponga de los permisos de edición de las claves). Cuando se establece una conexión con una máquina remota, se está efectuando realmente una conexión de tipo llamada a un procedimiento remoto (Remote Procedure Call, RPC), que se mantiene abierta hasta que se utiliza el comando Cerrar para cerrar la última ventana que muestra información de ese servidor.

Administración de la seguridad en las claves del Registro

Regedt32 permite fijar la seguridad de las claves del Registro seleccionando una clave y eligiendo el comando Permisos del menú Seguridad. Todo lo aprendido sobre configuración de permisos de archivos es válido aquí también, y las operaciones básicas funcionan del mismo modo: se selecciona un objeto y a continuación se conceden o deniegan privilegios específicos a usuarios y grupos concretos. En el cuadro de diálogo Permisos, se muestran cinco principios de seguridad: Administradores, Usuarios, CREATOR OWNER, Usuarios avanzados y SYSTEM. Los contenidos exactos que se visualizan en la computadora varían dependiendo de la plantilla de seguridad que se haya aplicado; las plantillas más restrictivas podrían cambiar estos permisos significantemente.

El cuadro de diálogo Permisos permite conceder y denegar permisos de Lectura y Control total a las claves. Sin embargo, en general, no deberá hacerse uso de esto en las claves que sean propiedad del sistema; es por ello que Windows incluye las plantillas de seguridad. Resulta sumamente sencillo configurar un permiso accidentalmente de forma tan restrictiva que se consiga que el software que necesita acceso al Registro no pueda tenerlo, y al contrario, es posible que se configuren permisos que son innecesariamente relajados.

Cuando se configuran los permisos utilizando el cuadro de diálogo Permisos, hay que fijarse en si se habilita o no la opción de Hacer posible que los permisos heredables de un objeto primario se propaguen a este objeto. Esta opción se encuentra habilitada de manera predeterminada, de forma que cuando se aplican nuevos permisos, se propagan automáticamente a todas las subclaves de la clave seleccionada. Dependiendo del nivel en el que se apliquen estos permisos, la herencia puede tener consecuencias no deseadas -si se relajan los permisos de una clave, podrían relajarse accidentalmente los permisos de una subclave que deba mantenerse segura-. Antes de cambiar los permisos de cualquier clave, hay que asegurarse de hacer una copia de seguridad correcta del Registro, así como de anotar los cambios que se han realizado para poder deshacerlos más tarde.

Las configuraciones pertenecientes a las aplicaciones son, naturalmente, otra historia. En Windows NT 4 la única forma para determinar los permisos adecuados de la mayoría de las claves de las aplicaciones es expandirlas todo lo posible para a partir de ahí comenzar a relajar los controles gradualmente de abajo arriba hasta que la aplicación funcione correctamente. Desafortunadamente, este enfoque se requiere también en Windows 2000.

Cuando se pulsa sobre el botón Avanzada del cuadro de diálogo Permisos, se muestra el cuadro de diálogo Configuración de control de acceso que aglutina a tres fichas. Cada ficha tiene un significado especial para las claves del Registro:

Algunos trucos útiles

Existen cuatro comandos muy útiles de Regedt32 que no se ajustan a ningún punto de esta exposición:

Copia de Seguridad y Recuperación del Registro

Copia de seguridad de Windows 2000 para copiar y restaurar el estado general del sistema difiere un poco de Windows NT, donde se puede hacer fácilmente una copia de seguridad del Registro creando un disco de reparaciones ante emergencias (Emergency Repair Disk, ERD) o ejecutando Ntbackup y habilitando la opción de Incluir Registro local.

Estas diferencias se deben al Active Directory. En Windows NT, una copia de seguridad del Registro contiene una copia de la base de datos SAM de la máquina local (al igual que una copia del dominio SAM cuando se realiza una copia de seguridad del controlador de dominios). En una red que utilice Active Directory, el directorio contiene la mayor parte de la información existente formalmente en el SAM, que es la razón por la que para los controladores de dominio se tenga que realizar un proceso de recuperación en dos fases.

Como consecuencia de la forma en que estos cambios se han implementado, el disco de reparación ante emergencias ya no contiene la información del Registro -la única copia de seguridad propia de la computadora está en la carpeta %SystemRoot%\Repair-. Dado que ya no es posible guardarse las espaldas con los ERD, es extremadamente importante la realización de copias de seguridad regulares y útiles.

Selección de un método de copia de seguridad

Dado que el Registro es algo más que un archivo ordinario, tiene sentido otorgar a los procedimientos de copia de seguridad y restauración una dedicación en tiempo superior a la normal. Es posible hacer copias de seguridad y restauración del Registro de otras formas aparte de haciendo copias de seguridad completas del estado del sistema entero. Naturalmente, esto no excluye el seguir haciendo copias de seguridad regulares de los datos personales, así como de los estados del sistema de cada computadora que se administre. La copia de seguridad del Registro por sí sola es muy útil, dado que es en éste donde la mayor parte de las aplicaciones y los componentes del sistema guardan sus preferencias y parámetros de configuración.

Copia de seguridad de Windows 2000

Cuando se utiliza la Copia de seguridad de Windows 2000 para hacer una copia del estado del sistema, ésta incluye una copia completa del Registro de la máquina. También incluye copias del volumen del sistema (en controladores de dominio), datos de certificación, información de Registro de las clases COM+, así como otra información ajena a lo que es el Registro. Por otro lado, la Copia de seguridad de Windows 2000 automatiza el proceso de realizar una copia de seguridad del Registro, de forma que sea fácil de utilizar y comprender. Además, el guardar la información del Registro con el resto de la información del servidor permite restaurar todo sin tener que recurrir a CD de otros fabricantes, controladores y otras cosas relativas.

El Disco de reparación ante emergencias

El Disco de reparación ante emergencias (Emergency Repair Disk, ERD) de la Copia de seguridad de Windows 2000 permite también hacer una copia de seguridad del Registro; la mayoría de los administradores de Windows NT utilizan esto como primera línea de defensa contra los fallos, dado que las herramientas de reparación incluidas en Windows NT 4 pueden restaurar la información del Registro desde un ERD. Windows 2000 utiliza los ERD también, pero no incluyen la información del Registro. Cuando se utiliza la Copia de seguridad de Windows 2000 para crear un ERD, debe especificarse que se desea hacer una copia de seguridad del Registro y esta información no se almacena directamente en el disco del ERD (hace falta guardar manualmente una copia y entonces reemplazar durante la restauración los archivos de Registro copiándolos empleando la consola de recuperación).

Copias de seguridad manuales

Dado que Regedt32 permite cargar y descargar archivos de sección y claves, es posible aproximarse a lo que hace la Copia de seguridad de Windows 2000 guardando manualmente en un archivo de sección las claves en las que se está más interesado, copiando los archivos resultado en algún lugar seguro y cargándolos de nuevo si se necesitan. Esta aproximación es correcta, pero requiere mucho trabajo dado que al no ser posible informar a Regedt32 de las claves que se quieren guardar, no hay forma de automatizar el proceso.

Copia de seguridad del Registro

El proceso de copia de seguridad de Windows 2000 es terriblemente sencillo (es una gran mejora respecto a Windows NT 4).

Copia de seguridad de Windows 2000

El Capitulo 4 trataba los mecanismos necesarios para realizar una copia de seguridad y restauración del estado del sistema, del cual el Registro es una parte pequeña pero crítica. Quien se encuentre confortable con el proceso de realización y restauración de la copia de seguridad del estado del sistema con la Copia de seguridad de Windows 2000 se encuentra en buena en forma. Sin embargo, podría ordenarse un resumen rápido.

  1. Ejecutar la aplicación de Copia de seguridad de Windows 2000; cuando aparezca, pulsar la pestaña de Copia de seguridad.
  2. Especificar el dispositivo de copia de seguridad o la ubicación que se quiera emplear con las opciones de Destino de la copia de seguridad o Hacer copia de seguridad del medio o del archivo.
  3. Si es necesario, expandir el icono de Mi PC.
  4. Seleccionar la opción de Estado del sistema (hay que recordar que los elementos del estado del sistema están relacionados entre sí y no pueden copiarse por separado).
  5. Pulsar el botón Iniciar. Cuando el sistema copia la información del estado del sistema, se incluyen los archivos del Registro permitiendo su recuperación posterior.
Grabación de una copia del Registro

Cuando se crea un ERD, la Copia de seguridad de Windows 2000 ofrece la posibilidad de copiar el Registro. Cuando se selecciona esta opción, una copia extra de los archivos de sección del Registro se almacena en la carpeta %SystemRoot%\Repair\REGBACK. Además de los archivos de sección estándar (SECURITY, SAM, SYSTEM, SOFTWARE, DEFAULT, Ntuser.dat y Usrclass.dat), se pueden observar los archivos representativos de las secciones que se hayan cargado manualmente en el Registro.

Cuando la Copia de seguridad de Windows 2000 termina de copiar estos archivos, éstos quedan a disposición del usuario -el usuario puede moverlos, copiarlos, hacer una copia de seguridad de ellos o cualquier otra cosa que se quiera-. En particular, se pueden comprimir y guardar en un disquete, así como mover a cualquier medio extraíble que se tenga a mano.

Si las copias de seguridad se guardan en formato comprimido o en un medio que requiera un dispositivo especial, hay que asegurarse de que sea posible acceder a estos archivos cuando se esté recuperando la máquina.

Recuperación del Registro

Si se dispone de una copia de seguridad en la carpeta %SystemRoot%\Repair\REGBACK, la Consola de recuperación puede utilizarse para restaurar la copia de seguridad del Registro. Cuando se ejecuta la Consola de recuperación, se pueden copiar los archivos de Registro necesarios para restaurarlos en su ubicación normal en disco y a continuación reiniciar la máquina. No hay que olvidar que al hacer esto se eliminan todos los cambios que se hayan realizado desde el momento en que se creó la copia de seguridad.