El Registro: Restaurar sistema

Restaurar sistema nos devuelve el equipo a un estado previo sin perder información personal. Esta opción no existe en W2003, pero sí en XP y posteriores. Lo que hace es comprobar los cambios en el equipo y muchas de sus aplicaciones y crear puntos de restauración. Estos snapshots o instantáneas son en realidad las instrucciones para deshacer cambios recientes. Podemos recuperar estas instantáneas en caso de que el sistema no funcione adecuadamente. XP por ejemplo crea puntos de restauración diarios y cuando existen eventos significativos, como instalar nuevas aplicaciones, parches, controladores… Nosotros podemos modificar la programación o incluso usar scripts.

Restaurar sistema crea diversos tipos de puntos de restauración, a saber:

  • Comprobación del sistema.

Hay un punto de restauración inicial cuando XP se inicia por primera vez, si lo restauramos a éste punto tendremos el sistema tal cual se instaló y arrancó la primera vez.

Se crean diversos puntos de sistema regularmente, cambie o no el sistema. Normalmente cada 24 horas, si mantenemos apagado el equipo por más de 24 horas se creará en cuanto iniciemos el sistema.

  • Instalación.

Cuando instalamos programas que usan instaladores correctos se crea un punto de restauración.

  • Actualizaciones automáticas.

Tanto si es por Actualizaciones automáticas como si usamos Windows Update, se crean puntos de restauración.

  • Manuales.

Creamos los puntos nosotros mismos mediante Restaurar Sistema o nos montamos nuestro propio Script para que los cree según nuestras preferencias. Por ejemplo: no es mala idea realizar un punto de restauración manual antes de empezar a toquetear el registro y cambiar valores.

  • Operaciones de restauración.

Se crean puntos cuando restauramos puntos, es decir, puntos que nos permiten deshacer la propia restauración.

  • Controladores no firmados.

Se crean en cuanto instalamos un controlador de dispositivo no firmado. En caso de inestabilidad por dicha instalación, a restaurar.

  • Copias de seguridad .

En cuanto realizamos una copia de seguridad usando la utilidad del sistema para recuperar una copia, se crea un punto por si queremos deshacer esa recuperación.

Restaurar Sistema utiliza una cantidad de espacio en disco que hemos de configurar, por supuesto a mayor cantidad de espacio mayor cantidad de puntos pueden guardarse.

Mirar dentro…

Muchos de los archivos y carpetas de Restaurar Sistema están muy ocultos, tanto que no se ven aunque marquemos ver archivos ocultos y de sistema, hemos de añadir la selección de NO ocultar archivos protegidos del sistema.

Los archivos se encuentran en la raíz_del_sistemaSystem32Restore, en XP. Además del Rstrui.exe vemos el filelist.xml que es la lista de archivos y configuraciones que Restaurar Sistema controla.

systemrestoreFILESxp

Se excluyen archivos de configuración Legacy –win.ini, system.ini, autoexec.bat y config.sys-, algunas carpetas también en su mayoría nada importantes para el sistema. Se protegen desde los exe y dll hasta VBS y VxD. Si un archivo coincide con las extensiones incluidas y está en una carpeta excluida en filelist.xml, Restaurar Sistema lo sigue, como lo hace con los archivos de sección por-usuario de la rama HKLMSOFTWAREMicrosoftWindows NTCurrentVersionProfileList.

Los archivos de restauración están en cada carpeta de cada volumen: System Volume Information, por supuesto oculta y con ACL. No es aconsejable acceder, ya que hay que cambiar los valores de ACL. Dentro se encuentra una carpeta –restoreEQUIPO (EQUIPO=GUID del equipo):

systemrestore01

Que a su vez contiene cada punto de restauración, con la nomenclatura de RPnum donde num es un número incremental que comienza por 1. Cada RPnum contiene las copias de seguridad y archivos eliminados. Restaurar Sistema cambia los nombres de archivos.

systemrestore02

Así pues cada RPnum contiene copias de seguridad de los archivos de sección del Registro. Si obtenemos acceso a System Volume Information podríamos cargar estos archivos de sección con Regedit y examinarlos, o recuperar valores si se quiere. En realidad la manera más adecuada para recuperar configuraciones de estos archivos sería usar Restaurar Sistema.

Pero ya que estamos en ello; los archivos de sección que encontraremos dentro de las instantáneas (snapshot) de un RPnum se ven perfectamente en la imagen:

systemrestoresnapshot

Restaurar sistema dispone de opciones de administración. Tales como cambiar el tamaño de espacio en disco que usará, incluso deshabilitarlo, o disponer de un par de directivas, como Desactivar restaurar sistema, que deshabilita Restaurar sistema totalmente, y cuando no queremos que los usuarios puedan cambiar su configuración tenemos Desactivar configuración, aunque los usuarios pueden crear sus propios puntos de restauración. Estas directivas son aplicables al equipo.

systemrestoregpos systemrestoregposw7

 

Personalizar Restaurar Sistema

La llave es HKLMSoftwareMicrosoftWindows NTCurrentVersionSystemRestore, aquí hallaremos la configuración de Restaurar sistema, que en principio toda la lista de valores son del tipo REG_DWORD en XP, pero no así en Vista o W7.

registrosystemrestoreXP registrosystemrestorew7

Valores que pueden modificarse sin riesgo de dañar el equipo
  • CompressionBurst
    Tiempo de compresión en segundos antes de entrar en inactividad: tiempo empleado en comprimir los datos antes de que el equipo entre en inactividad. Un servicio puede comprimir datos durante el tiempo especificado y después detenerse. Así, en el siguiente intervalo, podrá repetirse el proceso.
  • DiskPercent
    Valor de referencia al porcentaje de espacio de disco que Restaurar sistema usa para almacén de datos. El valor predeterminado es del 12%. Siempre se calcula como el «máximo de (12%, DSMax)», sin importar el tamaño del disco. El tamaño máximo (máximo de) es lo que se especifica en DSMax. Para tamaños de disco inferior a 4GB, el 12% es menos de 400MB, así que el «máximo de (12%, DSMax)» es 400MB. Si es mayor de 4GB, el 12% es más de 400MB, por lo que el «máximo de (12%, DSMax)» es el 12%. Este tamaño no es reservado y sólo se usa si se pide.

Windows Vista:  Recibe un valor desde el servicio Volume Shadow Copy Service (VSS). Es la cantidad máxima de espacio en disco de cada unidad ue puede usar Restaurar Sistema. El valor predeterminado es el 15% del total de la unidad o el 30% del espacio libre el que sea menor.

  • DSMax
    Tamaño máximo de almacén de Restaurar sistema. De forma predeterminada son 400 MB. Y como se veía anteriormente se calcula como el «máximo de (12%, DSMax)», sin importar el tamaño del disco.  Discos menores a 4GB será 400MB y en los mayores de 4GB será realmente el 12%.  No es tamaño reservado y se usa si se pide.
  • DSMin
    Aquí se refiere al mínimo de espacio libre en disco que Restaurar sistema necesita para poder funcionar durante la instalación, y para que se reactive y reanude la creación de puntos después de deshabilitarse por falta de espacio en el disco.
  • RestoreStatus
    Indicación sobre la última restauración: falló (0), correcta (1) o se interrumpió (2).
  • RPGlobalInterval
    Valor, en segundos, de espera antes de crear puntos automáticos del equipo durante el tiempo transcurrido. Valor predeterminado, 24 horas.

Windows Vista:  Recibe un valor desde programador de tareas. 0 si el programador está desactivado.

  • RPLifeInterval
    Período de vida(TTL), en segundos, de los puntos de restauración. Llegado el momento si un punto de restauración sigue en el sistema, se elimina. Valor predeterminado (7776000) = 90 días.
  • RPSessionInterval
    Valor, en segundos, de espera antes de crear puntos de comprobación automáticos del equipo (el tiempo que el equipo ha estado activo). El valor predeterminado es cero (0), lo que significa que esta característica está desactivada.

Windows Vista:  Recibe un 0 si Restaurar Sistema está deshabilitado.

  • ThawInterval
    Valor, en segundos, de tiempo que Restaurar sistema espera antes de activarse a sí mismo desde un estado deshabilitado, si se cumplen las condiciones para ello. Si abrimos la ventana de Restaurar sistema, se activa inmediatamente.
Valores que no deben modificarse
  • CreateFirstRunRp
    Valor que indica al equipo que cree el primer punto de restauración, como cuando Restaurar sistema se desactiva y se vuelve a activar seguidamente, o lo deshabilitamos e inmediatamente lo volvemos a habilitar. No debe debe modificarse bajo ninguna circunstancia, cualquier modificación puede dejar al equipo irrecuperable.
  • DisableSR
    Activa o desactiva Restaurar sistema. Si se desactiva en el Registro, los puntos de restauración existentes no se quitan. No debe modificarse, debe activarse o desactivarse sólo desde la interfaz de usuario.
  • RestoreDiskSpaceError
    Indicación al equipo para que muestre un mensaje de error si Restaurar sistema no puede ejecutarse por problemas de espacio en disco. Es informativo.
  • RestoreSafeModeStatus
    Indicación de si la última restauración fue en Modo a prueba de errores.
  • TimerInterval
    Tiempo de activación, en segundos. Momento u hora en la que Restaurar sistema se «activa» y comprueba su espacio en disco. Predeterminado 120, no debe modificarse ya que puede afectar al rendimiento del equipo.

Vista-W7

Normalmente Windows utiliza el 15% del espacio disponible en la unidad para guardar los puntos de restauración. En XP esta opción se hace desde la pestaña Restaurar Sistema del cuadro de diálogo de las propiedades del Sistema,

 

Pero esto ya no está en Vista-W7, aunque podemos hacer lo siguiente:

Vamos a la llave del Registro HKLMSOFTWAREMicrosoftWindowsNTCurrentVersionSystemRestoreCfg

Doble clic en DiskPercent, el valor predeterminado es F (15 en decimal), para cambiar a 10% escribiríamos A.

Si queremos cambiar la frecuencia de los puntos de restauración automáticos:

Vamos a la llave del Registro HKLMSOFTWAREMicrosoftWindowsNTCurrentVersionSystemRestore

Cambiamos el valor RPGlobalInterval que de forma predeterminada es 86400 segundos (24 horas) a por ejemplo: 43200 (a8c0) que serían 12 horas.

Cuando se crean nuevos puntos se van eliminando los viejos si no hay espacio en disco suficiente, al estilo FIFO (Primero en entrar primero en salir).

De forma pretederminada, Vista-W7 elimina puntos de restauración a los 136 años, je! en XP eran 90 días.

Pero bueno, lo podemos cambiar en valor RPLifeInterval, por ejemplo al valor que tenía XP, 7776000 (76A700).

Para ver el espacio que ocupan los puntos de restauración, más abajo indico los comandos de vssadmin necesarios.

Utilidad para crear puntos de restauración

Para cambiar la frecuencia de los puntos automáticos sin tocar el registro:

CSFRregistry 

vssadmin

Un punto de restauración es ahora un tipo de Shadowcopy. Los puntos de restauración se crean con File Backup, Complete PC backup, la tarea diaria de system restore y en las instalaciones de aplicaciones y controladores.

Las shadowcopy que crea Complete PC no son puntos de restauración, aunque ambos tipos de copia existan en el mismo lugar de almacenamiento de cada volumen.

El lugar de almacenamiento de las shadowcopy es por tanto el area destinada en cada volumen para el almacenamiento de cada shadow copy.

El comando vssadmin list shadowstorage (con privilegios) obtiene como salida:

vssadminlist 

con vssadmin resize shadowstorage podemos cambiar el tamaño del espacio en el volumen deseado, y, con vssadmin list shadows obtendremos una salida resumen, como:

——————————

Microsoft Windows [Versión 6.1.7600]
Copyright (c) 2009 Microsoft Corporation. Reservados todos los derechos.

C:Windowssystem32>vssadmin list shadows
vssadmin 1.1 – Herramienta administrativa de línea de comandos del Servicio de instantáneas de volumen. (C) Copyright 2001-2005 Microsoft Corp.

Contenido de  id. de conjunto de instantáneas: {357f2227-c25f-49b5-8133-9f9fde3e4666}
   Contenía 1 instantáneas en el momento de su creación: 09/12/2009 09:02:24
      Id. de instantáneas: {18fbf63d-a4b8-43c6-b52e-4f2c8e4856e4}
         Volumen original: (C:)\?Volume{7113d9e8-3624-11de-b05a-806e6f6e6963}

         Volumen de instantáneas: \?GLOBALROOTDeviceHarddiskVolumeShadowCopy1
         Equipo de origen: Juansa-PC
         Equipo de servicio: Juansa-PC
         Proveedor: ‘Microsoft Software Shadow Copy provider 1.0’
         Tipo: ClientAccessibleWriters
         Atributos: Persistente, Accesible para el cliente, Sin liberación automática, Diferencial, Recuperado automáticamente

Contenido de  id. de conjunto de instantáneas: {46713632-9da9-4348-9475-0dea7c78a04f}
   Contenía 1 instantáneas en el momento de su creación: 09/12/2009 09:16:04
      Id. de instantáneas: {13a94392-3d04-4ecc-b8e7-cb1cb5390924}
         Volumen original: (C:)\?Volume{7113d9e8-3624-11de-b05a-806e6f6e6963}

         Volumen de instantáneas: \?GLOBALROOTDeviceHarddiskVolumeShadowCopy2
         Equipo de origen: Juansa-PC
         Equipo de servicio: Juansa-PC
         Proveedor: ‘Microsoft Software Shadow Copy provider 1.0’
         Tipo: ClientAccessibleWriters
         Atributos: Persistente, Accesible para el cliente, Sin liberación automática, Diferencial, Recuperado automáticamente

Contenido de  id. de conjunto de instantáneas: {ccd27605-a70e-4dba-9cb1-33b818eb8110}
   Contenía 1 instantáneas en el momento de su creación: 11/12/2009 07:48:21
      Id. de instantáneas: {89bf1497-9510-4b81-9e33-bdbe0cd45378}
         Volumen original: (C:)\?Volume{7113d9e8-3624-11de-b05a-806e6f6e6963}

         Volumen de instantáneas: \?GLOBALROOTDeviceHarddiskVolumeShadowCopy3
         Equipo de origen: Juansa-PC
         Equipo de servicio: Juansa-PC
         Proveedor: ‘Microsoft Software Shadow Copy provider 1.0’
         Tipo: ClientAccessibleWriters
         Atributos: Persistente, Accesible para el cliente, Sin liberación automática, Diferencial, Recuperado automáticamente

Contenido de  id. de conjunto de instantáneas: {e8c1e12b-063d-46ef-839c-bac5d5f39fe3}
   Contenía 1 instantáneas en el momento de su creación: 15/12/2009 08:06:04
      Id. de instantáneas: {9f0aae64-ffa8-4f52-9c16-0ddb228a825e}
         Volumen original: (C:)\?Volume{7113d9e8-3624-11de-b05a-806e6f6e6963}

         Volumen de instantáneas: \?GLOBALROOTDeviceHarddiskVolumeShadowCopy4
         Equipo de origen: Juansa-PC
         Equipo de servicio: Juansa-PC
         Proveedor: ‘Microsoft Software Shadow Copy provider 1.0’
         Tipo: ClientAccessibleWriters
         Atributos: Persistente, Accesible para el cliente, Sin liberación automática, Diferencial, Recuperado automáticamente

Contenido de  id. de conjunto de instantáneas: {fb976c3b-5c64-44d3-be68-2d7a9c3c8bf0}
   Contenía 1 instantáneas en el momento de su creación: 15/12/2009 09:43:18
      Id. de instantáneas: {774842c6-7163-4db8-b2ad-9396e72fbc07}
         Volumen original: (C:)\?Volume{7113d9e8-3624-11de-b05a-806e6f6e6963}

         Volumen de instantáneas: \?GLOBALROOTDeviceHarddiskVolumeShadowCopy5
         Equipo de origen: Juansa-PC
         Equipo de servicio: Juansa-PC
         Proveedor: ‘Microsoft Software Shadow Copy provider 1.0’
         Tipo: ClientAccessibleWriters
         Atributos: Persistente, Accesible para el cliente, Sin liberación automática, Diferencial, Recuperado automáticamente

C:Windowssystem32>

 

 

———————–

El Registro: Copias de seguridad

Ya que mencionaba el consejo de hacer copia del registro antes de manipularlo…

 

seguridad ante todo

Es fácil olvidarse de hacer una copia de seguridad antes de cualquier cambio, por simple que sea. Pero, ¿Cómo sabemos que ese pequeño cambio no causará un error grave? No lo sabemos, así qué hay que hacer una copia de seguridad ‘siempre’ antes de cualquier cambio.

Para realizar las copias de seguridad distinguiremos varios aspectos:

– Copia de valores, que podremos restaurar rápidamente en el registro.

– Exportar la parte del registro que nos interese guardar a un archivo REG.

– Exportar las ramas hacia archivos de sección (hive files).

Cualquiera de los tres nos servirá para recuperar el registro en la mayoría de los casos.

copiar valores

Una manera fácil de copia de seguridad de los valores antes de cambiarlos:

Renómbralos. Es decir, cambia su nombre original, añadiéndoles algo que te indique que es una copia, incluso añade la fecha si quieres hacer un seguimiento de cambios. Por ejemplo:

reg_copyvalues 

Tenemos una copia del valor deseado en el propio registro, que podemos recuperar rápidamente con eliminar el nuevo y cambiarle el nombre al marcado como COPIA.

Exportar a REG

Manera de tener una copia para restaurarla desde un archivo.

  1. Seleccionamos la rama a exportar.
  2. Menú Archivo y Exportar
  3. Elegiremos la opción Rama seleccionada
  4. Le daremos un nombre al archivo REG
  5. Ya tenemos un archivo con datos copiados del registro y listo para integrarlo de nuevo con un doble clic.

¿Que pasa al intentar integrarlo de nuevo?

Si el valor no existe en el REG ni en el Registro: NADA

Si el valor no existe en el REG pero sí en el Registro: El valor del registro no cambia ni se elimina.

Si el valor existe en el REG pero no en el Registro: El valor se añade al registro

Si el valor existe tanto en el REG como en el Registro: El valor del registro se modifica con el valor del archivo REG.

Exportar a archivos de sección

Dicen que es la mejor manera de tener copias de seguridad del Registro. Cuando importamos un archivo de sección con una llave, Regedit reemplaza la llave y todas sus sub-llaves con los valores del archivo. Es decir, se eliminará cualquier valor añadido desde la copia del archivo de sección.

Exportar a un archivo de sección es similar a hacerlo a un archivo REG, tan sólo hemos de cambiar el tipo de archivo en el cuadro de diálogo de exportar en lugar de REG y darles la extensión que consideremos más oportuna.

reg_export_hivefile

Para importar uno de estos archivos, haremos lo mismo después de escoger la acción Importar del menú Archivo.

reg_import_hivefile 

No confundamos importar/exportar con cargar/descargar. Al importar realizamos cambios en el registro, mientras que al cargar creamos una nueva rama entera que Windows no usa, y sólo nos servirá para examinarla. El descargar sólo descargará archivos que hayamos cargado manualmente.

Considerando que la importación de un archivo de sección es una buena manera de restauración de una rama entera, cargar el archivo es un buen método de comprobación de valores originales.

Cargamos un archivo en el registro, el que contiene nuestros valores, Regedit nos solicita un nombre de llave, le damos uno que nos identifique la sección; ahora disponemos de una visión de los valores que contienen el archivo y que podemos comparar con los valores de la misma rama que hay actualmente en el registro, pudiendo copiar los actuales y pegar los que tenemos guardados con el fin de configurar lo deseado.

RECUERDA DESCARGAR EL ARCHIVO ANTES DE CERRAR EL REGISTRO!!

Finalmente, una utilidad vía línea de comandos es REG.EXE. Nos ofrece muchas de las características de Regedit y algunas otras más.

Consejo y aviso

Como comenta Iván, manipular el registro no está exento de su peligrosidad, así que haciendo caso de su consejo OS RECUERDO:

HACER COPIA DE SEGURIDAD DEL REGISTRO ANTES DE CUALQUIER MANIPULACIÓN DEL MISMO. UN MAL USO PODRÍA DEJAR AL SISTEMA DAÑADO Y SIN RESPONDER!!!

El registro: Exportación

Exportar parte o todo el registro es algo que los que nos dedicamos a esto deberíamos hacer con frecuencia. Con Exportar conseguimos guardar en un archivo partes del registro, los suelen denominar archivos REG, aunque los archivos de secciones (hive files) son más útiles. Es una buena manera de hacer copias de seguridad de valores de configuración que queramos restaurar con facilidad con posterioridad, si lo necesitamos. Es una forma de compartir configuraciones también.

Los archivos REG nos servirán con propósitos prácticos además, por ejemplo como implantación.

Regedit exporta los valores de cuatro maneras: registro, registro w9x/NT, archivos de sección y archivos de texto. Las diferencias entre ellos son significativas. Para exportar una rama del registro:

  1. Seleccionamos la llave superior de la rama que queremos exportar
  2. Menú archivo, pulsamos en Exportar y accedemos al diálogo de exportar archivo de registro.
    registro_export01
  3. Escribimos un nombre para el archivo que vamos a crear.
  4. Seleccionamos una de las opciones, dependiendo del rango a exportar:
    1. Si queremos todo el registro: opción TODO
    2. Sólo la rama seleccionada: Opción RAMA.
  5. Elegimos el tipo de archivo para la exportación.
  6. Finalmente pulsamos en guardar.
    registro_export02 

Importar un archivo al registro es como abrir un archivo. Seleccionamos importar y buscamos el archivo o simplemente hacemos doble clic sobre el que queremos integrar en el Registro.

Archivos de registro

Los archivos de registro son similares a los archivos INI, cada sección representa una llave, y cada elemento dentro de una sección un valor.

registro_icon registro_file

 

Quizás lo más importante de estos REG de versión 5 es que son Unicode y algunos programas no los pueden manejar correctamente. Debido a ser Unicode, cada carácter en valores REG_EXPAND_SZ y REG_MULTI_SZ es de DOS (2) bytes.

Aviso: OJO con las versiones de los REG!, no hay que importar archivos creados en una versión de Windows en otra versión de Windows.

Los archivos REG de w9x/NT son de versión 4, es decir, son ANSI.

Los archivos de sección son archivos binarios que contienen partes del Registro. Aunque Regedit los muestre juntos y debidamente estructurados como una sólo unidad lógica. Podemos exportar ramas a archivos de sección que usaremos en otros equipos u otros usuarios. Esta exportación es como los REG, sin poder editar o modificar como los REG, tampoco pueden apuntar a configuraciones individuales. La ventaja entonces es centra en la posibilidad de cargarlos y editarlos con Regedit sin que remplacen a la configuración existente. Usando nuestro sentido común podremos elegir entre archivos de sección o archivos REG.

Los archivos de texto no se pueden importar hacia el registro, así que parece que nos servirán sólo para imprimirlos o leerlos con más comodidad que los propios REG.

El Registro: Editándolo

Primero nos aseguramos que no hay nada que nos prohíba manipular el registro y que podemos añadir, eliminar o renombrar llaves y valores.

Regedit nos muestra en pantalla un editor distinto dependiendo del tipo de valor:

registro_binario registro_MULTI
registro_cadena registro_DWORD

El editor de cadena nos servirá en los tipos REG_SZ y REG_EXPAND_SZ, el DWORD para REG_DWORD, el binario para valores REG_BINARY, y el multi-string para los REG_MULTI_SZ.

Para cambiar un valor, Editar, Modificar y escribir el nuevo valor dentro de la casilla correspondiente. Cuando cambiamos un valor éste se aplica de inmediato, aunque no signifique que Windows u otro programa incorporen el cambio. De hecho, hay cambios que hasta que el sistema o programa no se reinicien no se cargarán.

Lo normal es realizar una copia de seguridad antes de modificar cualquier valor, no estamos libres de errores, para eso somos humanos.

Añadir llaves o valores

Podemos crear llaves y valores sólo si sabemos lo que estamos haciendo:

  1. Seleccionamos la llave donde añadir
  2. clic derecho, elegimos Nuevo
  3. Seleccionamos el tipo de valor
    registro_addkey
  4. Le damos un nombre y lo editamos para introducir el valor/es que deseamos.

Borrar llaves o valores

Deberíamos exportar aquéllas llaves/valores que vamos a eliminar, por seguridad.

Clic derecho sobre el valor/llave y Eliminar

registro_deletekey

Renombrar llaves o valores

Clic en la llave/valor y renombrarlo. También podemos seleccionar con clic derecho la opción Cambiar nombre.

El Registro: Usando el editor

El editor del registro es la herramienta que usaremos para editar el registro directamente. Cada vez que iniciamos sesión el registro cambia, sea a nivel del equipo o porque nosotros cambiamos algo en el panel de control, aplicamos una actualización, ejecutamos un programa concreto, etc… Con el editor del registro comprometemos los valores del registro sin la ayuda de una interfaz de usuario. Esto hace de esta herramienta una más poderosas y peligrosas de las del sistema operativo. Por una parte personalizamos el sistema de maneras que no son posibles mediante el interfaz de usuario, por otra, ninguna otra herramienta controla doblemente los cambios que efectuamos.

Toda versión de Windows (desde Windows 3.1) ha tenido un editor del registro. Por supuesto, durante el paso del tiempo y versiones se ha ido mejorando.

No tenemos ningún acceso directo al editor del registro, REGEDIT, en el menú de inicio, además de que Windows ofrece diversas gpo para limitar el acceso y uso de esta herramienta.

Regedit se encuentra en la raíz del sistema, normalmente C:Windows. Si queremos ejecutarlo es tan simple como acceder a Ejecutar desde el menú de inicio y escribir regedit.

Con toda su potencia, Regedit se mantiene como un simple programa con un interfaz de usuario directo. Sus menús son simples. Tiene una barra de estado que muestra en pantalla el nombre de la llave actual. Sus ventanas contienen dos paneles, divididos por una línea de separación que podemos arrastrar y soltar para cambiar el ancho de cada uno de los paneles. Con doble clic en la línea se obtiene una división automática. En el panel de la izquierda se muestran las llaves y su jerarquía, mientras en el panel de la derecha es el de los valores.

Regedit guarda su configuración cada vez que lo cerramos, es decir, que cuando volvamos a abrirlo se nos mostrará en el lugar en que lo utilizamos por última vez.

Panel de llaves

Este panel muestra la jerarquía del registro. Se organiza con cada llave, sus hijas o sub llaves colgando de ellas. Arriba encontramos a MI equipo, Mi PC o Equipo, que representa al equipo evidentemente. Cuando se conecta con otro registro de otro equipo de la red, veremos el nombre del equipo en el nivel superior del panel de llaves también. Debajo de MI PC (Equipo) vemos cada una de las llaves raíz del registro local, debajo de estas si vamos desplegándolas, están sus sub-llaves. Cuando alguien se refiera a una Rama es a unaave y sus sub-llaves. Una rama se extiende pulsando en el signo + (más) se retrae si pulsamos en el signo –(menos). Si pulsamos en cualquier llave, podremos obsrvar sus valores en el panel de valores.

Como comentábamos anteriormente, Windows almacena diferentes partes del registro en diferentes archivos de secciones. Regedit muestra en pantalla todos los archivos de secciones juntos, para ver un registro unificado. Podemos ver cuando una rama es su propio archivo de sección ya que su nombre se encuentra en mayúsculas.

Panel de valores

Este panel muestra en pantalla los valores de la llave seleccionada. Tenemos tres columnas: Nombre, tipo y datos. Podemos variar la anchura de las columnas arrastrando los divisores. Cada fila contiene un valor único. El primero de los valores siempre es Default, que es el valor RG_SZ predeterminado de la llave.

Como parece obvio, la columna Nombre nos muestra el nombre junto a un icono que indica el tipo de valor, si es una cadena o es un valor binario.

registryicons

 

El primero nos indica un valor binario, mientras el segundo una cadena.

 

Dentro del editor tenemos la opción de búsqueda, que nos será útil para hallar llaves, valores o datos que nos interesen.

registroBUSCAR

 

 

O, tener las llaves deseadas como favoritas.

registrofavoritos

Después de varias búsquedas comenzaremos a conocer como buscar en el registro más rápidamente, donde comenzar y acabar las búsquedas, seguir la búsqueda con la tecla F3 o ver que nos indica la barra de estado. Aún así es bueno tener en cuenta:

  • Limitar la búsqueda a la llave HKCR si buscamos asociaciones de archivo.
  • Mirar en KHCUSoftware y HKLMSOFTWARE si queremos configuraciones de programas.
  • En HKCU si lo que buscamos son configuraciones por usuario, y en HKLM si son por equipo.
  • Finalmente la rama HKLMSystem es la que contiene controladores de dispositivo y configuraciones de servicios.

Hay herramientas de búsqueda del registro que son de terceros.

Como Registry Crawler (que al parecer 4dev ha dejado de estar disponible)

Como Registry Toolkit

Como Resplendent Registrar

o, como Registry detective.

El Registro: Herramientas y archivos de las secciones

Aunque hay diversas herramientas para el registro de terceros, sean libres o de probar y comprar, las más comúnmente utilizadas, creo, son:

  • El editor del registro
    • Herramienta básica y principal.
  • Reg.exe
    • Herramienta en línea de comandos para el registro, nos permite scripts para el registro en archivos de lotes.
  • WinDiff
    • Herramienta de las Windows Support Tools.

Archivos de secciones

Con el editor del registro vemos la estructura del registro. Es como Windows nos lo presenta y lo usan los programas, a pesar de cómo lo organiza el sistema operativo en el disco, que es algo más complicado.

Físicamente, Windows organiza el registro en secciones (ramas almacenadas en archivos únicos), cada una es un archivo binario denominado Hive File. Para cada uno de estos, Windows crea archivos adicionales de compatibilidad que contienen copias de seguridad de los datos de la sección. Estas copias permiten al sistema repararla durante la instalación e inicio si hubiese pasado algo malo. Los hives los encontramos sólo en dos llaves raíz: HKLM y HKU (ya que las demás llaves son enlaces dentro de estas dos). Los archivos de las secciones y los archivos de compatibilidad que no pertenezcan a HKU se encuentran en  raíz_del_sistemasystem32config. Las de HKU están en los perfiles de usuario.

La correspondencia entre las secciones del registro y el archivo de sección en HKLM es:

HKLMSAM           —–> SAM, SAM.log

HKLMSECURITY    —–> SECURITY, SECURITY.log

HKLMSOFTWARE  —–> Software, Software.log, Software.sav

HKLMSYSTEM      —–> System, System.log, System.sav.

Los .log son transacciones y cambios en la sección, mientras los .sav son una copia del archivo de sección hecho al terminar la fase de modo-texto del programa de instalación de Windows.

La HKLMHARDWARE es una sección dinámica, Windows crea cada vez el inicio del sistema y por ello no guarda la sección como un archivo de sección al apagar el equipo.

Cada sub-llave en HKU es una sección también, HKU.DEFAULT por ejemplo cuyo archivo de sección es raíz_del_sistemasystem32configdefault.

HKUSID  –> NTUSER.DAT

HKUSID_Classes –> perfil_usuarioLocal SettingsApplication DataMicrosoftWindowsUsrClass.dat.

Cada vez que un usuario inicia sesión en Windows, el sistema usa el perfil predeterminado de usuario para crear un nuevo perfil para el que inicia. El perfil contiene un nuevo NTUSER.DAT, que no es más que la sección de perfil de usuario.

Si queremos ver los perfiles cargados por Windows y el archivo de sección que les corresponde miraremos en HKLMSOFTWAREMicrosoftWindows NTCurrentVersionProfileList. Esta llave contiene una sub-llave por cada perfil que el sistema haya cargado, antes o ahora, cuyo nombre es el de la sección en HKU y el valor ProfileImagePath es el que contiene la ruta al archivo de sección, que siempre es NTUSER.DAT.