[Artículo] Entendiendo el registro de windows - FINAL (parte IV)

13/05/2005 - 19:25 por fermu | Informe spam
Hash: SHA1

En entregas anteriores vimos, lo que era un archivo hive, y trate de
explicar de una forma clara y sencilla, la compleja estructura del
registro, en esta ultima entrega incidiré en los tipos de valores que se
pueden agregar al registro y veremos los métodos de los que disponemos
para hacer copias de seguridad de nuestro registro, y como restaurar
las mismas, con ello daré por finalizadas esta serie de publicaciones.


Tipos de valores que se pueden agregar al registro

Antes de ver todo esto, debemos recordar un poco las formas que tenemos
de agregar valores al registro, mediante la interfaz gráfica
(inicio/ejecutar/regedit) os recuerdo, que esto se hace desde el menú
edición/nuevo, si nos situamos ahí veremos diferentes tipos de valores,
voy a desglosar los más importantes siguiendo el orden marcado por el
registro,

Valor Alfanumérico: Este tipo de valor se abrevia en la columna ?tipo?
que podemos observar si abrimos cualquier rama, en el panel de la
derecha, como "REG_SZ", son valores de texto estándar, que pueden ser
leidos sin problemas por cualquiera que abra el registro, algunas claves
como son el sistema de autentificación ante un dominio, manipulando para
ello el registro, son almacenadas en este formato, por lo que ya sabeis
los riesgos de inseguridad que esto representa.

Valor Binario: Abreviadamente "REG_BINARY", representan datos binarios
sin procesar, que son utilizados habitualmente por los dispositivos
hardware.

Valor de cadena expandible: abreviado "REG_EXPAND_SZ" son tipos de datos
que contienen una variable que se resuelve, cuando un programa o
servicio resuelve esa variable, en entregas precedentes ya hemos tratado
este tema, un ejemplo de ello sería la variable ?ProgramFiles?, que
resolvería la ruta exacta donde están instalados nuestros diferentes
programas, por defecto, \archivos de programas\ , una de las formas que
tenemos de consultar estas variable es con el comando "set" desde una
consola de comandos, o bien, desde mi pc > panel de control > sistema >
opciones avanzadas > variables de entorno, las mimas también aparecen
referenciadas en el registro repartidas entre algunas claves, una de
ellas sería:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session
Manager\Environment

Valor DWORD, abreviado ?REG_DWORD?, representa un numero de 4 byte de
longitud, habitualmente es utilizado como valor booleano, (aunque
también puede aparecer con otras funciones), siendo su valor más común 1
ó 0, es decir, apagado ? encendido, habilitado - deshabilitado verdadero
? falso, comúnmente utilizado entre las políticas de grupo, y en control
de servicios,

Otro de los valores habitualmente representados en el registro es el
valor de cadena expandible, abreviadamente, "REG_MULTI_SZ", no es ni más
ni menos, que un valor que representa una lista que puede ser consultada
y leída, al hacer doble click sobre una clave de este tipo,

No me voy a enrollar más sobre este tema, puesto que tenéis mucha
información al respecto en Internet y específicamente en este artículo
de la KB.


**/Definición del Registro de Microsoft Windows
http://support.microsoft.com/?scid=...;x=9&y

Manipulando el registro,

En la primera entrega ya vimos, a parte del método GUI, dos ordenes que
son muy habituales para manejar el registro desde la linea de comandos:
regedit que recordemos podiamos iniciar con una serie de modificadores
que todavía están disponibles en windows xp y el comando "reg", con este
comando podemos hacer todas las operaciones que hacemos iniciando el
registro con su interfaz gráfica, pero desde linea de comandos, la
utilidad de gestionar el registro desde una consola son muchas, ya que
bastantes operaciones son más rapidas de hacer desde una consola que
desde una interfaz gráfica, a parte, que desde una sesión de comandos es
posible recuperar zonas del registro, que limiten la funcionalidad de la
interfaz gráfica o que inclusive nos impida iniciarla.

En este apartado vamos a recordar otras herramientas disponibles para
modificar el registro, y nos vamos a introducir en otra serie de
comandos que no vienen documentados en la ayuda de windows,

Comando regsvr32

El comando regsvr32 nos va a registrar correctamente servidores de
componentes COM que son requeridos por múltiples aplicaciones para su
correcto funcionamiento, esto servidores de componentes COM suelen venir
o bien con extensión exe, o bien con extensión .dll, Es habitual que
este tipo de servidores, se registren correctamente durante la
instalación del programa que los requiere, pero también es habitual, que
durante un periodo de uso, se pierda esa información por diferentes
causas, o que el componente requiera actualizar su información manualmente,

La forma más sencilla de ejecutar este comando es sin parámetros, es
decir, de la forma

Regsvr32 + nombredll

Mediante esta sencilla forma de ejecutarlo, nos aseguramos de la
información del servidor de componentes es agregada adecuadamente al
registro, si el comando finaliza apropiadamente, nos avisará con una
ventanita en la que nos advierte de este extremo, pero es posible
ejecutarlo en modo silencioso agregandole el parámetro /s es decir:

Regsvr32 + nombredll /s

De este modo no nos avisará de nada, la forma de eliminar la información
en el registro es agregándole el parámetro /u es decir,

Regsvr32 + nombredll /u

La información que recopila esta herramienta, es incluida en el registro
en una clave que ya he explicado en entregas anteriores, se agrega en la
rama
HKEY_CLASSES_ROOT\CLSID y en sus subclaves asociadas,

La información de los diferentes servidores OLE/COM agregada al registro
es posible verla de una forma más fácil, y es con la herramienta "mmc",
winxp ya lleva un administrador de componentes COM que nos permita
operar con este tipo de servidores desde el panel de control >
herramientas administrativas > administrador de componentes com, si
deseamos operar saber componentes OLE hay registrados en el sistema lo
podemos hacer desde el ?system information? de microsoft, ubicado en
herramientas > accesorios, yendo a registro de software / registro de
OLE, otra herramienta también muy gráfica es el comando "oleview" que se
puede obtener de las resources kit de win2k3 de forma totalmente gratuita.

Comandos regini y regmdp

La manipulación del registro mediante archivos *.reg es muy conocida,
pero hay otra forma menos documentada, que es mediante archivos *.ini
La creación de un archivo *.reg es muy sencilla simplemente vamos a
inicio/ejecutar tecleamos "regedit" y seleccionamos la rama a exportar,
quedándonos solo ir al menú archivo/exportar, con lo que nos quedará un
archivo *.reg de esa rama especifica que podremos exportar cómodamente a
otro PC con solo hacer doble clic sobre el mismo.

La otra forma de manipular el registro es con Regini, esta herramienta
no es tan facil de manejar como el comando "reg" o el comando "regedit"
que ya hemos visto, pero con ella es posible desde hacer cambios menores
en el sistema de permisos, hasta borrar determinadas claves, la sintaxis
del comando varia sustancialmente de un archivo reg convencional, pero
tenemos una herramienta llamada regdmp.exe, que nos ayudará a crear las
salidas adecuadas, lamentablemente la herramienta regdmp.exe no viene
incluida en winxp, y la única manera de obtenerla de forma oficial, es
bajándose el resource kits de winnt 4.0, y la forma oficiosa desde este
enlace

http://users.compaqnet.be/cn021945/...530101.htm

Esto nos descargará un archivo zip, en el que viene incluida esa
utilidad, solo tenemos que descomprimir el comando ?regdmp.exe? en la
carpeta \windows\system32, su sintaxis es muy sencilla, una vez
instalado, solo tenemos que teclear regdmp.exe más el nombre de la clave
cuya sintaxis queramos consultar, si queremos guardar la salida en algún
sitio, la unica manera es está:

Regdmp Nombre_clave > archivo_salida.txt

Un ejemplo vamos a consultar una clave especifica del registro mediante
regdmp y la redireccionamos a un archivo que posteriormente
modificaremos e introduciremos en el registro mediante Regini

E:\WINNT\system32\ENG> regdmp
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SNMP_EVENTS
\EventLog\Parameters" > dmp.txt

El comando redireccionaría la salida del mismo a un archivo llamado
"dmp.txt" en lugar de a la pantalla que es su salida natural, si
instalamos el comando y tecleamos "regdmp /?" veremos las opciones
disponibles,

Posteriormente solo tenemos que abrir el archivo txt generado con un
editor de texto normal, y modificar los parámetros que queramos para
incluirlos posteriormente con Regini,

Regini, es también un comando muy cómodo para incluir en scripts para
manipulación de registro.

De todas formas, yo me sigo quedando con el comando "reg" que trae por
defecto winxp, para hacer cualquier modificación en el registro, en el
capitulo siguiente veremos algunas funcionalidades de este comando no
tan conocidas, que nos permitirán hacer copia de seguridad y
restauración del registro, así como creación de archivos hive manuales
mediante este comando.

Haciendo copia de seguridad del registro.

Los métodos convencionales,

El método convencional por GUI supongo que es conocido por todos, es
mediante los diferentes métodos que nos ofrece la herramienta ?regedit?
en su menú Archivo > exportar, veamos cada método,

Si abrimos la herramienta de exportación gráfica, veremos que en su menú
desplegable nos ofrece varias posibilidades de volcado,

Archivo REG, esta forma de volcar la información del registro es,
probablemente la más conocida por todos, con este métodos podemos volcar
la información del registro, de una rama específica (simplemente
seleccionando la rama cuya información queremos volcar a un archivo
reg), o de todo el registro, el metodo para introducir los datos otra
vez al registro, también es muy sencillo, ya que está contemplada la
posibilidad de hacer doble click sobre el archivo REG generado para
estos menesteres, teniendo también la posibilidad de hacerlo desde el
menú archivo > importar

Archivo de subárbol de registro, está opción quizás sea menos conocida,
pero no por ello es menos importante, con esta opción lo que conseguimos
es volcar la información de una rama del registro a un archivo hive en
formato binario. El proceso para restaurar un archivo hive, es algo más
complicado que en el caso de un archivo *.reg convencional, lo primero
que tenemos que hacer es seleccionar en el panel de la izquierda la rama
o árbol exacto en donde queremos restaurar los datos, esto es
importante porque sino los datos del archivo hive a volcar en el
registro serán introducidos en un lugar incorrecto, después tenemos que
ir a Archivo > importar, y seleccionar en el cuadro desplegable ?tipo?
la opción ?archivos de subárbol de registro? navegamos hasta donde
tenemos el archivo guardado, y posteriormente le damos a abrir, un
cuadro desplegable nos advertirá de que el contenido del archivo hive,
será añadido en la rama seleccionada, y de que todos los valores de la
rama en cuestión serán eliminados y sustituidos por los de nuestro
archivo hive.

Archivo TXT, este no es un procedimiento de copia de datos convencional,
ya que únicamente hace una imagen en formato texto de cómo está el
estado de la rama seleccionado en un momento dado, y que, aunque puede
ser leído con un editor de texto convencional, la información
proporcionada no puede ser introducida en el registro, mediante un doble
click, como en el caso de los archivo *.reg

Archivo reg win9x/WinNT 4. está opción nos exporta los datos
seleccionados al formato utilizado por estos sistemas operativos, es
decir, utiliza ?Regedit 4? en lugar de ?regedit 5? que es el que utiliza
windows XP.


Otras posibilidades, la potencia de la linea de comandos,

En otras versiones de windows teníamos otros comandos para guardar y
restaurar copias de nuestro registro, los comandos, la ultima vez que yo
los he visto, ha sido en windows 2000 y corresponden a:

regback.exe, regrest.exe

Pues bien, los comandos regback.exe y regrest.exe que estaban
disponibles en la resource kits de windows 2000 han sido sustituidos por
el comando "reg" que ha pasado a suplir sus funcionalidades, a si,
mediante las opciones "reg save" podemos salvar el contenido del
registro a un archivo hive y con "reg restore" podemos restaurar la
información de ese archivo al registro. La sintaxis de estos comandos no
es complicada, y está documentada en la ayuda de windows, por lo que os
invito nuevamente a consultarla para conocer algo más sobre estos
comandos, recordaros también el comando "reg export" y "regedit /e" que
veiamos en la primera entrega y con los cuales podiamos exportar a un
archivo "reg" la configuración del registro

Ultima configuración buena conocida,

Mediante las diferentes opciones de inicio que se nos presentan si
presionamos la tecla F8 de nuestro PC, antes de que salga el logo de
windows, se nos relaciona está opción, lo que en realidad hace está
opción restaurar una de las copias de la rama
HKLM\SYSTEM\CurrentControlSet y restaurar la configuración de hardware.
Por lo que solo nos será útil este sistema de recuperación del registro
si nuestro problema está relacionado con algo de hardware.

La herramienta restaurar sistema

Una de las formas más fáciles de restaurar el registro a un estado
anterior, es sin duda, mediante la herramienta restaurar sistema, por
defecto, en winxp, está activada, y crea puntos de restauración
regulares, que hace copia de todos estos puntos:

Copia del registro
Perifles de usuario locales,
Componentes COM+
Base de datos WMI
Metabase de IIS
Archivos con extensiones determinadas del sistema que son monitorizados

Volcado manual de archivos hive.

Bueno, ahora que sabemos, en que archivos se contienen nuestros datos,
sin duda una de las formas más faciles de hacer una copia de seguridad
del registro es guardando los archivos a un medio extraíble, así, en
caso de que alguno se corrompa, lo podremos recuperar con una
información más actualizada que en el caso de tener que recuperarlos del
CD de instalación, la ubicación de estos archivos ya la he mencionado y
repetido en multiples ocasioines a lo largo de estos artículos,
unicamente señalar, que la restauración de los archivos debe llevarse a
cabo en los mismos directorios donde se encuentran por defecto y con los
mismos nombres.

Utilizando NTBACKUP, para hacer copia de los archivos de sistema.

Pues bien, con esta herramienta también es posible hacer una copia de
seguridad de nuestros datos del registro, ntbackup, no solo es capaz de
hacer eso, también, hace copia de seguridad de los archivos de arranque
de windows xp (boot.ini, ntldr, ntdetect.com) y de los componentes com+
registrados, sin duda muy versátil, para llevar esto acabo tenemos que
salirnos del modo "wizard" o "asistente" eligiendo la opción modo
avanzado, e ir a "herramientas > ASR Wizard" (tengo el ntbackup en
ingles), esta opción nos saldrá un asistente para hacer está copia.

Automatizando la copia de seguridad, El NTbackup por linea de comandos

Ntbackup dispone también de una serie de modificadores, que permiten
ejecutarlo mediante una consola, si deseamos verlos no tenemos, más que
ir a inicio /ejecutar y teclear "ntbackup /?" con lo cual nos saldrá una
ventana de ayuda con todas estas opciones, os invito a consultarlas,

Específicamente la opción que nos interesa es el modificador
"systemstate" mediante este modificador es posible hacer una copia de
seguridad de los archivos más importantes de nuestro sistema operativo,


A pie de artículo os dejo un script, para automatizar esta tarea, el
script, es autoria de Andrew S. Baker, para hacerlo funcional unicamente
tenéis que copiar y pegar lo que viene entre lineas punteadas y
renombrarlo como BACKUPSCHED.BAT, al ejecutarlo, se hará una copia de
los archivos de sistema, incluyendo el registro, los archivos de
arranque y los componentes DCOM, para ejecutarlo es necesarios tener
windows 2000 o superior
En fin, con esta ultima entrega termino mi serie de artículo espero que
hayais distfrutado leyendola tanto como yo escribiendola

SCRIPT
@ECHO OFF
rem = rem Create a Rotating Schedule of SystemState Backups
rem = rem
rem Created On: 06 Mar 2003
rem By: Andrew S. Baker
rem
rem Updated On: 07 Jan 2004
rem By: Andrew S. Baker
rem


rem = rem OS Required: Windows 2000 and later
rem
rem Non-Native Utilities Required: NONE
rem =
::: This script creates a schedule of daily SystemState backups
::: on Windows 2000/XP/2003 system using the native NTBACKUP
::: utility. It will generate a new backup for each day of the
::: week. This script could be easily modified to create a new
::: backup file for each week of the month, as well.
:::
::: You can control the location of the backup file by changing
::: the environment variables or adding your desired destination
::: as a command-line paramater to the script.
:::
::: Remember to use quotes to surround long file/folder names.
:::
::: The filename which is generated for the backup will include
::: the name of the day (Sun, Mon, Tue, etc) and will be
::: overwritten every week. This will provide up to 6 days
::: worth of backup, but requires 7 times the space of a single
::: backup. Minimum SystemState backup is approx 200MB.
:::
::: All task scheduling is handled by SCHTASKS (from XP/2003)
::: you can edit this executable to make it run under 2000.
::: See: http://www.jsiinc.com/SUBJ/tip4800/rh4806.htm
:::
::: For More Scripting Assistance, see the following:
::: http://www.ultratech-llc.com/KB/?Fi...ipting.TXT


rem = rem Verify If Syntax Help Is Required/Requested
rem Last Modified On 09 Mar 2003
rem =:NeedHelp
FOR %%H IN (H HELP) DO IF /I "%~1"=="/%%H" GOTO :HelpMessage
FOR /F %%H IN ('ECHO %* ^| FIND /I "/?"') DO IF NOT ERRORLEVEL 1 GOTO
:HelpMessage


rem = rem Initialize Environment Variables
rem Last Modified On 07 Jan 2004
rem =:Variables
SETLOCAL
SET @STORAGE=%SystemDrive%\STORAGE& IF /I EXIST "%~dp0SetDrive.BAT"
CALL "%~dp0SetDrive.BAT"

rem -- Calculate Date/Time (Very Short Procedure)
FOR /F "TOKENS=1-4 DELIMS=/ " %%D IN ('DATE /T') DO SET @DAY=%%D& SET
@DATE=%%G%%E%%F

rem -- Job Scheduling Variables
SET @JOBNAME=SystemState Backup
SET @JOBPATH=%~f0
SET @JOBFREQÚILY
SET @JOBTIME#:45:00
SET @JOBUSER=SYSTEM

rem -- Standard Variables
SET @LOGPATH=%USERPROFILE%\Local Settings\Application
Data\Microsoft\Windows NT\NTBackup\Data
SET @BACKUPEXE=%SystemRoot%\System32tbackup.exe
SET @BACKUPFILE=%~1& IF /I "%~1"=="" SET
@BACKUPFILE=%@STORAGE%\Backups\SystemState.bkf

CALL :SetBackupName "%@BACKUPFILE%"


rem = rem Create Scheduled Job using SCHTASKS or AT
rem Last Modified On 06 Dec 2003
rem =:ScheduleJobs
ECHO.
ECHO Scheduling "%@JOBNAME%"...
ECHO.

IF /I EXIST "%SystemRoot%\System32\SCHTASKS.EXE" (
SCHTASKS /QUERY /V /FO LIST | FIND /I "%@JOBPATH%" >NUL
IF ERRORLEVEL 1 (
SCHTASKS /CREATE /TN "%@JOBNAME%" /TR "%@JOBPATH%" /SC "%@JOBFREQ%"
/ST %@JOBTIME% /RU "%@JOBUSER%"
)
) ELSE (
AT | FIND /I "%@JOBPATH%" >NUL
IF ERRORLEVEL 1 AT %@JOBTIME% /EVERY:M,T,W,TH,F,SA,SU "%@JOBPATH%"
)

rem -- If the only parameter is "." then exit as soon as the job is
scheduled
IF /I "%1"=="." GOTO :EOF


rem = rem Create Backup File
rem Last Modified On 07 Dec 2003
rem =:CreateBackup
ECHO Creating SystemState Backup for %COMPUTERNAME%...
ECHO.
ECHO Please wait (up to 5 minutes)...
ATTRIB -A "%@LOGPATH%\*.LOG"
IF /I NOT EXIST "%@BACKUPDIR%" MD "%@BACKUPDIR%"
%@BACKUPEXE% backup SystemState /n %@ARCHIVE% /d "%@JOBNAME%" /v:yes
/r:no /rs:no /hc:off /m normal /j "%@JOBFREQ%" /l:s /f "%@BACKUPFILE%"
DIR "%@BACKUPFILE%\..\*.BKF" /OD /A-D


rem = rem Reset Environment Variables and Exit Batch File
rem Last Modified On 05 Dec 2003
rem =:ExitBatch
FOR /F %%V IN ('DIR "%@LOGPATH%\*.LOG" /AA /B') DO TYPE "%@LOGPATH%\%%V"
ENDLOCAL
GOTO :EOF


rem = rem SUBROUTINE: Set Name of Backup File Based On Day of Week
rem Last Modified On 10 Mar 2003
rem =:SetBackupName
rem %1 = Current Filename
SET @BACKUPFILE=%~dp1%~n1-%@DAY%.BKF
SET @BACKUPDIR=%~dp1
SET @ARCHIVE="%~n1-%@DAY%.BKF created on %@DATE%"
GOTO :EOF


rem = rem SUBROUTINE: Display Syntax Help For "/?"
rem Last Modified On 09 Mar 2003
rem =:HelpMessage
ECHO.
ECHO Syntax Help for BACKUPSCHED.BAT
ECHO.
ECHO BackupSched [destination_file]
ECHO.
ECHO Example: BackupSched
ECHO BackupSched C:\Backups\MyBackup.bkf
ECHO BackupSched "C:\My Backups\MyBackup.bkf"
ECHO.

Saludos
Fernando M. / Registered Linux User #367696

Preguntas similare

Leer las respuestas

#1 José Gallardo
13/05/2005 - 20:01 | Informe spam
Muchas gracias. Personalmente, he aprendido mucho... bueno empiezo a aprender, porque esto hay que asimilarlo tranquilamente. Además, el estilo, muy claro y directo. ¡Enhorabuena!

"fermu" escribió en el mensaje news:uZ5eUD%
Hash: SHA1

En entregas anteriores vimos, lo que era un archivo hive, y trate de
explicar de una forma clara y sencilla, la compleja estructura del
registro, en esta ultima entrega incidiré en los tipos de valores que se
pueden agregar al registro y veremos los métodos de los que disponemos
para hacer copias de seguridad de nuestro registro, y como restaurar
las mismas, con ello daré por finalizadas esta serie de publicaciones.


Tipos de valores que se pueden agregar al registro

Antes de ver todo esto, debemos recordar un poco las formas que tenemos
de agregar valores al registro, mediante la interfaz gráfica
(inicio/ejecutar/regedit) os recuerdo, que esto se hace desde el menú
edición/nuevo, si nos situamos ahí veremos diferentes tipos de valores,
voy a desglosar los más importantes siguiendo el orden marcado por el
registro,

Valor Alfanumérico: Este tipo de valor se abrevia en la columna ?tipo?
que podemos observar si abrimos cualquier rama, en el panel de la
derecha, como "REG_SZ", son valores de texto estándar, que pueden ser
leidos sin problemas por cualquiera que abra el registro, algunas claves
como son el sistema de autentificación ante un dominio, manipulando para
ello el registro, son almacenadas en este formato, por lo que ya sabeis
los riesgos de inseguridad que esto representa.

Valor Binario: Abreviadamente "REG_BINARY", representan datos binarios
sin procesar, que son utilizados habitualmente por los dispositivos
hardware.

Valor de cadena expandible: abreviado "REG_EXPAND_SZ" son tipos de datos
que contienen una variable que se resuelve, cuando un programa o
servicio resuelve esa variable, en entregas precedentes ya hemos tratado
este tema, un ejemplo de ello sería la variable ?ProgramFiles?, que
resolvería la ruta exacta donde están instalados nuestros diferentes
programas, por defecto, \archivos de programas\ , una de las formas que
tenemos de consultar estas variable es con el comando "set" desde una
consola de comandos, o bien, desde mi pc > panel de control > sistema >
opciones avanzadas > variables de entorno, las mimas también aparecen
referenciadas en el registro repartidas entre algunas claves, una de
ellas sería:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session
Manager\Environment

Valor DWORD, abreviado ?REG_DWORD?, representa un numero de 4 byte de
longitud, habitualmente es utilizado como valor booleano, (aunque
también puede aparecer con otras funciones), siendo su valor más común 1
ó 0, es decir, apagado ? encendido, habilitado - deshabilitado verdadero
? falso, comúnmente utilizado entre las políticas de grupo, y en control
de servicios,

Otro de los valores habitualmente representados en el registro es el
valor de cadena expandible, abreviadamente, "REG_MULTI_SZ", no es ni más
ni menos, que un valor que representa una lista que puede ser consultada
y leída, al hacer doble click sobre una clave de este tipo,

No me voy a enrollar más sobre este tema, puesto que tenéis mucha
información al respecto en Internet y específicamente en este artículo
de la KB.


**/Definición del Registro de Microsoft Windows
http://support.microsoft.com/?scid=...;x=9&y

Manipulando el registro,

En la primera entrega ya vimos, a parte del método GUI, dos ordenes que
son muy habituales para manejar el registro desde la linea de comandos:
regedit que recordemos podiamos iniciar con una serie de modificadores
que todavía están disponibles en windows xp y el comando "reg", con este
comando podemos hacer todas las operaciones que hacemos iniciando el
registro con su interfaz gráfica, pero desde linea de comandos, la
utilidad de gestionar el registro desde una consola son muchas, ya que
bastantes operaciones son más rapidas de hacer desde una consola que
desde una interfaz gráfica, a parte, que desde una sesión de comandos es
posible recuperar zonas del registro, que limiten la funcionalidad de la
interfaz gráfica o que inclusive nos impida iniciarla.

En este apartado vamos a recordar otras herramientas disponibles para
modificar el registro, y nos vamos a introducir en otra serie de
comandos que no vienen documentados en la ayuda de windows,

Comando regsvr32

El comando regsvr32 nos va a registrar correctamente servidores de
componentes COM que son requeridos por múltiples aplicaciones para su
correcto funcionamiento, esto servidores de componentes COM suelen venir
o bien con extensión exe, o bien con extensión .dll, Es habitual que
este tipo de servidores, se registren correctamente durante la
instalación del programa que los requiere, pero también es habitual, que
durante un periodo de uso, se pierda esa información por diferentes
causas, o que el componente requiera actualizar su información manualmente,

La forma más sencilla de ejecutar este comando es sin parámetros, es
decir, de la forma

Regsvr32 + nombredll

Mediante esta sencilla forma de ejecutarlo, nos aseguramos de la
información del servidor de componentes es agregada adecuadamente al
registro, si el comando finaliza apropiadamente, nos avisará con una
ventanita en la que nos advierte de este extremo, pero es posible
ejecutarlo en modo silencioso agregandole el parámetro /s es decir:

Regsvr32 + nombredll /s

De este modo no nos avisará de nada, la forma de eliminar la información
en el registro es agregándole el parámetro /u es decir,

Regsvr32 + nombredll /u

La información que recopila esta herramienta, es incluida en el registro
en una clave que ya he explicado en entregas anteriores, se agrega en la
rama
HKEY_CLASSES_ROOT\CLSID y en sus subclaves asociadas,

La información de los diferentes servidores OLE/COM agregada al registro
es posible verla de una forma más fácil, y es con la herramienta "mmc",
winxp ya lleva un administrador de componentes COM que nos permita
operar con este tipo de servidores desde el panel de control >
herramientas administrativas > administrador de componentes com, si
deseamos operar saber componentes OLE hay registrados en el sistema lo
podemos hacer desde el ?system information? de microsoft, ubicado en
herramientas > accesorios, yendo a registro de software / registro de
OLE, otra herramienta también muy gráfica es el comando "oleview" que se
puede obtener de las resources kit de win2k3 de forma totalmente gratuita.

Comandos regini y regmdp

La manipulación del registro mediante archivos *.reg es muy conocida,
pero hay otra forma menos documentada, que es mediante archivos *.ini
La creación de un archivo *.reg es muy sencilla simplemente vamos a
inicio/ejecutar tecleamos "regedit" y seleccionamos la rama a exportar,
quedándonos solo ir al menú archivo/exportar, con lo que nos quedará un
archivo *.reg de esa rama especifica que podremos exportar cómodamente a
otro PC con solo hacer doble clic sobre el mismo.

La otra forma de manipular el registro es con Regini, esta herramienta
no es tan facil de manejar como el comando "reg" o el comando "regedit"
que ya hemos visto, pero con ella es posible desde hacer cambios menores
en el sistema de permisos, hasta borrar determinadas claves, la sintaxis
del comando varia sustancialmente de un archivo reg convencional, pero
tenemos una herramienta llamada regdmp.exe, que nos ayudará a crear las
salidas adecuadas, lamentablemente la herramienta regdmp.exe no viene
incluida en winxp, y la única manera de obtenerla de forma oficial, es
bajándose el resource kits de winnt 4.0, y la forma oficiosa desde este
enlace

http://users.compaqnet.be/cn021945/...530101.htm

Esto nos descargará un archivo zip, en el que viene incluida esa
utilidad, solo tenemos que descomprimir el comando ?regdmp.exe? en la
carpeta \windows\system32, su sintaxis es muy sencilla, una vez
instalado, solo tenemos que teclear regdmp.exe más el nombre de la clave
cuya sintaxis queramos consultar, si queremos guardar la salida en algún
sitio, la unica manera es está:

Regdmp Nombre_clave > archivo_salida.txt

Un ejemplo vamos a consultar una clave especifica del registro mediante
regdmp y la redireccionamos a un archivo que posteriormente
modificaremos e introduciremos en el registro mediante Regini

E:\WINNT\system32\ENG> regdmp
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SNMP_EVENTS
\EventLog\Parameters" > dmp.txt

El comando redireccionaría la salida del mismo a un archivo llamado
"dmp.txt" en lugar de a la pantalla que es su salida natural, si
instalamos el comando y tecleamos "regdmp /?" veremos las opciones
disponibles,

Posteriormente solo tenemos que abrir el archivo txt generado con un
editor de texto normal, y modificar los parámetros que queramos para
incluirlos posteriormente con Regini,

Regini, es también un comando muy cómodo para incluir en scripts para
manipulación de registro.

De todas formas, yo me sigo quedando con el comando "reg" que trae por
defecto winxp, para hacer cualquier modificación en el registro, en el
capitulo siguiente veremos algunas funcionalidades de este comando no
tan conocidas, que nos permitirán hacer copia de seguridad y
restauración del registro, así como creación de archivos hive manuales
mediante este comando.

Haciendo copia de seguridad del registro.

Los métodos convencionales,

El método convencional por GUI supongo que es conocido por todos, es
mediante los diferentes métodos que nos ofrece la herramienta ?regedit?
en su menú Archivo > exportar, veamos cada método,

Si abrimos la herramienta de exportación gráfica, veremos que en su menú
desplegable nos ofrece varias posibilidades de volcado,

Archivo REG, esta forma de volcar la información del registro es,
probablemente la más conocida por todos, con este métodos podemos volcar
la información del registro, de una rama específica (simplemente
seleccionando la rama cuya información queremos volcar a un archivo
reg), o de todo el registro, el metodo para introducir los datos otra
vez al registro, también es muy sencillo, ya que está contemplada la
posibilidad de hacer doble click sobre el archivo REG generado para
estos menesteres, teniendo también la posibilidad de hacerlo desde el
menú archivo > importar

Archivo de subárbol de registro, está opción quizás sea menos conocida,
pero no por ello es menos importante, con esta opción lo que conseguimos
es volcar la información de una rama del registro a un archivo hive en
formato binario. El proceso para restaurar un archivo hive, es algo más
complicado que en el caso de un archivo *.reg convencional, lo primero
que tenemos que hacer es seleccionar en el panel de la izquierda la rama
o árbol exacto en donde queremos restaurar los datos, esto es
importante porque sino los datos del archivo hive a volcar en el
registro serán introducidos en un lugar incorrecto, después tenemos que
ir a Archivo > importar, y seleccionar en el cuadro desplegable ?tipo?
la opción ?archivos de subárbol de registro? navegamos hasta donde
tenemos el archivo guardado, y posteriormente le damos a abrir, un
cuadro desplegable nos advertirá de que el contenido del archivo hive,
será añadido en la rama seleccionada, y de que todos los valores de la
rama en cuestión serán eliminados y sustituidos por los de nuestro
archivo hive.

Archivo TXT, este no es un procedimiento de copia de datos convencional,
ya que únicamente hace una imagen en formato texto de cómo está el
estado de la rama seleccionado en un momento dado, y que, aunque puede
ser leído con un editor de texto convencional, la información
proporcionada no puede ser introducida en el registro, mediante un doble
click, como en el caso de los archivo *.reg

Archivo reg win9x/WinNT 4. está opción nos exporta los datos
seleccionados al formato utilizado por estos sistemas operativos, es
decir, utiliza ?Regedit 4? en lugar de ?regedit 5? que es el que utiliza
windows XP.


Otras posibilidades, la potencia de la linea de comandos,

En otras versiones de windows teníamos otros comandos para guardar y
restaurar copias de nuestro registro, los comandos, la ultima vez que yo
los he visto, ha sido en windows 2000 y corresponden a:

regback.exe, regrest.exe

Pues bien, los comandos regback.exe y regrest.exe que estaban
disponibles en la resource kits de windows 2000 han sido sustituidos por
el comando "reg" que ha pasado a suplir sus funcionalidades, a si,
mediante las opciones "reg save" podemos salvar el contenido del
registro a un archivo hive y con "reg restore" podemos restaurar la
información de ese archivo al registro. La sintaxis de estos comandos no
es complicada, y está documentada en la ayuda de windows, por lo que os
invito nuevamente a consultarla para conocer algo más sobre estos
comandos, recordaros también el comando "reg export" y "regedit /e" que
veiamos en la primera entrega y con los cuales podiamos exportar a un
archivo "reg" la configuración del registro

Ultima configuración buena conocida,

Mediante las diferentes opciones de inicio que se nos presentan si
presionamos la tecla F8 de nuestro PC, antes de que salga el logo de
windows, se nos relaciona está opción, lo que en realidad hace está
opción restaurar una de las copias de la rama
HKLM\SYSTEM\CurrentControlSet y restaurar la configuración de hardware.
Por lo que solo nos será útil este sistema de recuperación del registro
si nuestro problema está relacionado con algo de hardware.

La herramienta restaurar sistema

Una de las formas más fáciles de restaurar el registro a un estado
anterior, es sin duda, mediante la herramienta restaurar sistema, por
defecto, en winxp, está activada, y crea puntos de restauración
regulares, que hace copia de todos estos puntos:

Copia del registro
Perifles de usuario locales,
Componentes COM+
Base de datos WMI
Metabase de IIS
Archivos con extensiones determinadas del sistema que son monitorizados

Volcado manual de archivos hive.

Bueno, ahora que sabemos, en que archivos se contienen nuestros datos,
sin duda una de las formas más faciles de hacer una copia de seguridad
del registro es guardando los archivos a un medio extraíble, así, en
caso de que alguno se corrompa, lo podremos recuperar con una
información más actualizada que en el caso de tener que recuperarlos del
CD de instalación, la ubicación de estos archivos ya la he mencionado y
repetido en multiples ocasioines a lo largo de estos artículos,
unicamente señalar, que la restauración de los archivos debe llevarse a
cabo en los mismos directorios donde se encuentran por defecto y con los
mismos nombres.

Utilizando NTBACKUP, para hacer copia de los archivos de sistema.

Pues bien, con esta herramienta también es posible hacer una copia de
seguridad de nuestros datos del registro, ntbackup, no solo es capaz de
hacer eso, también, hace copia de seguridad de los archivos de arranque
de windows xp (boot.ini, ntldr, ntdetect.com) y de los componentes com+
registrados, sin duda muy versátil, para llevar esto acabo tenemos que
salirnos del modo "wizard" o "asistente" eligiendo la opción modo
avanzado, e ir a "herramientas > ASR Wizard" (tengo el ntbackup en
ingles), esta opción nos saldrá un asistente para hacer está copia.

Automatizando la copia de seguridad, El NTbackup por linea de comandos

Ntbackup dispone también de una serie de modificadores, que permiten
ejecutarlo mediante una consola, si deseamos verlos no tenemos, más que
ir a inicio /ejecutar y teclear "ntbackup /?" con lo cual nos saldrá una
ventana de ayuda con todas estas opciones, os invito a consultarlas,

Específicamente la opción que nos interesa es el modificador
"systemstate" mediante este modificador es posible hacer una copia de
seguridad de los archivos más importantes de nuestro sistema operativo,


A pie de artículo os dejo un script, para automatizar esta tarea, el
script, es autoria de Andrew S. Baker, para hacerlo funcional unicamente
tenéis que copiar y pegar lo que viene entre lineas punteadas y
renombrarlo como BACKUPSCHED.BAT, al ejecutarlo, se hará una copia de
los archivos de sistema, incluyendo el registro, los archivos de
arranque y los componentes DCOM, para ejecutarlo es necesarios tener
windows 2000 o superior
En fin, con esta ultima entrega termino mi serie de artículo espero que
hayais distfrutado leyendola tanto como yo escribiendola

SCRIPT
@ECHO OFF
rem => rem Create a Rotating Schedule of SystemState Backups
rem => rem
rem Created On: 06 Mar 2003
rem By: Andrew S. Baker
rem
rem Updated On: 07 Jan 2004
rem By: Andrew S. Baker
rem


rem => rem OS Required: Windows 2000 and later
rem
rem Non-Native Utilities Required: NONE
rem =>
::: This script creates a schedule of daily SystemState backups
::: on Windows 2000/XP/2003 system using the native NTBACKUP
::: utility. It will generate a new backup for each day of the
::: week. This script could be easily modified to create a new
::: backup file for each week of the month, as well.
:::
::: You can control the location of the backup file by changing
::: the environment variables or adding your desired destination
::: as a command-line paramater to the script.
:::
::: Remember to use quotes to surround long file/folder names.
:::
::: The filename which is generated for the backup will include
::: the name of the day (Sun, Mon, Tue, etc) and will be
::: overwritten every week. This will provide up to 6 days
::: worth of backup, but requires 7 times the space of a single
::: backup. Minimum SystemState backup is approx 200MB.
:::
::: All task scheduling is handled by SCHTASKS (from XP/2003)
::: you can edit this executable to make it run under 2000.
::: See: http://www.jsiinc.com/SUBJ/tip4800/rh4806.htm
:::
::: For More Scripting Assistance, see the following:
::: http://www.ultratech-llc.com/KB/?Fi...ipting.TXT


rem => rem Verify If Syntax Help Is Required/Requested
rem Last Modified On 09 Mar 2003
rem => :NeedHelp
FOR %%H IN (H HELP) DO IF /I "%~1"=="/%%H" GOTO :HelpMessage
FOR /F %%H IN ('ECHO %* ^| FIND /I "/?"') DO IF NOT ERRORLEVEL 1 GOTO
:HelpMessage


rem => rem Initialize Environment Variables
rem Last Modified On 07 Jan 2004
rem => :Variables
SETLOCAL
SET @STORAGE=%SystemDrive%\STORAGE& IF /I EXIST "%~dp0SetDrive.BAT"
CALL "%~dp0SetDrive.BAT"

rem -- Calculate Date/Time (Very Short Procedure)
FOR /F "TOKENS=1-4 DELIMS=/ " %%D IN ('DATE /T') DO SET @DAY=%%D& SET
@DATE=%%G%%E%%F

rem -- Job Scheduling Variables
SET @JOBNAME=SystemState Backup
SET @JOBPATH=%~f0
SET @JOBFREQÚILY
SET @JOBTIME#:45:00
SET @JOBUSER=SYSTEM

rem -- Standard Variables
SET @LOGPATH=%USERPROFILE%\Local Settings\Application
Data\Microsoft\Windows NT\NTBackup\Data
SET @BACKUPEXE=%SystemRoot%\System32tbackup.exe
SET @BACKUPFILE=%~1& IF /I "%~1"=="" SET
@BACKUPFILE=%@STORAGE%\Backups\SystemState.bkf

CALL :SetBackupName "%@BACKUPFILE%"


rem => rem Create Scheduled Job using SCHTASKS or AT
rem Last Modified On 06 Dec 2003
rem => :ScheduleJobs
ECHO.
ECHO Scheduling "%@JOBNAME%"...
ECHO.

IF /I EXIST "%SystemRoot%\System32\SCHTASKS.EXE" (
SCHTASKS /QUERY /V /FO LIST | FIND /I "%@JOBPATH%" >NUL
IF ERRORLEVEL 1 (
SCHTASKS /CREATE /TN "%@JOBNAME%" /TR "%@JOBPATH%" /SC "%@JOBFREQ%"
/ST %@JOBTIME% /RU "%@JOBUSER%"
)
) ELSE (
AT | FIND /I "%@JOBPATH%" >NUL
IF ERRORLEVEL 1 AT %@JOBTIME% /EVERY:M,T,W,TH,F,SA,SU "%@JOBPATH%"
)

rem -- If the only parameter is "." then exit as soon as the job is
scheduled
IF /I "%1"=="." GOTO :EOF


rem => rem Create Backup File
rem Last Modified On 07 Dec 2003
rem => :CreateBackup
ECHO Creating SystemState Backup for %COMPUTERNAME%...
ECHO.
ECHO Please wait (up to 5 minutes)...
ATTRIB -A "%@LOGPATH%\*.LOG"
IF /I NOT EXIST "%@BACKUPDIR%" MD "%@BACKUPDIR%"
%@BACKUPEXE% backup SystemState /n %@ARCHIVE% /d "%@JOBNAME%" /v:yes
/r:no /rs:no /hc:off /m normal /j "%@JOBFREQ%" /l:s /f "%@BACKUPFILE%"
DIR "%@BACKUPFILE%\..\*.BKF" /OD /A-D


rem => rem Reset Environment Variables and Exit Batch File
rem Last Modified On 05 Dec 2003
rem => :ExitBatch
FOR /F %%V IN ('DIR "%@LOGPATH%\*.LOG" /AA /B') DO TYPE "%@LOGPATH%\%%V"
ENDLOCAL
GOTO :EOF


rem => rem SUBROUTINE: Set Name of Backup File Based On Day of Week
rem Last Modified On 10 Mar 2003
rem => :SetBackupName
rem %1 = Current Filename
SET @BACKUPFILE=%~dp1%~n1-%@DAY%.BKF
SET @BACKUPDIR=%~dp1
SET @ARCHIVE="%~n1-%@DAY%.BKF created on %@DATE%"
GOTO :EOF


rem => rem SUBROUTINE: Display Syntax Help For "/?"
rem Last Modified On 09 Mar 2003
rem => :HelpMessage
ECHO.
ECHO Syntax Help for BACKUPSCHED.BAT
ECHO.
ECHO BackupSched [destination_file]
ECHO.
ECHO Example: BackupSched
ECHO BackupSched C:\Backups\MyBackup.bkf
ECHO BackupSched "C:\My Backups\MyBackup.bkf"
ECHO.

Saludos
Fernando M. / Registered Linux User #367696
Respuesta Responder a este mensaje
#2 fermu
13/05/2005 - 20:07 | Informe spam
Hash: SHA1

;-)
Saludos
Fernando M. / Registered Linux User #367696
Respuesta Responder a este mensaje
#3 Peni \(Francisco\)
13/05/2005 - 21:16 | Informe spam
Felicidades Fermu, te lo has currao y además hay un montón de información :-))



Saludos. Peni
Para correo: http://cerbermail.com/?h4s9sbNqzW

"fermu" escribió en el mensaje news:uZ5eUD%
Hash: SHA1

En entregas anteriores vimos, lo que era un archivo hive, y trate de
explicar de una forma clara y sencilla, la compleja estructura del
registro, en esta ultima entrega incidiré en los tipos de valores que se
pueden agregar al registro y veremos los métodos de los que disponemos
para hacer copias de seguridad de nuestro registro, y como restaurar
las mismas, con ello daré por finalizadas esta serie de publicaciones.

Respuesta Responder a este mensaje
#4 jefebe
13/05/2005 - 22:16 | Informe spam
Hola "profe":
Es un verdadero placer encontrar personas como tú que ayudan a los
sufridores de Windows en particular y de la informática en general.

Después de las "loas" (si no eres pedagogo deberías serlo) te hago la
pregunta referente a este punto...

valor booleano, (aunque también puede aparecer con otras funciones), siendo su valor más común 1 ó 0, es decir, apagado ? encendido, habilitado - deshabilitado verdadero ó falso, comúnmente utilizado entre las políticas de grupo, y en control






de servicios,

Pues bien. ¿Cómo consideramos en el registro el 1? ¿verdadero?
Te lo digo porque así me ha parecido entender los datos del registro en su
exploración/manipulación aunque, bien es verdad, en otros sistemas es al
revés: 0 ver
dadero y 1 falso.

Tú dirás. Muchas gracias por todo
Jesús
Respuesta Responder a este mensaje
#5 JM Tella Llop [MVP Windows]
13/05/2005 - 22:19 | Informe spam
Normalmente en windows 1 es verdadero y cero falso.

Jose Manuel Tella Llop
MVP - Windows
(quitar XXX)
http://www.multingles.net/jmt.htm

Este mensaje se proporciona "como está" sin garantías de ninguna clase,
y no otorga ningún derecho.

This posting is provided "AS IS" with no warranties, and confers no
rights.
You assume all risk for your use.



"jefebe" wrote in message
news:
Hola "profe":
Es un verdadero placer encontrar personas como tú que ayudan a los
sufridores de Windows en particular y de la informática en general.

Después de las "loas" (si no eres pedagogo deberías serlo) te hago la
pregunta referente a este punto...

valor booleano, (aunque también puede aparecer con otras funciones),
siendo su valor más común 1 ó 0, es decir, apagado ? encendido,
habilitado - deshabilitado verdadero ó falso, comúnmente utilizado entre
las políticas de grupo, y en control






de servicios,

Pues bien. ¿Cómo consideramos en el registro el 1? ¿verdadero?
Te lo digo porque así me ha parecido entender los datos del registro en su
exploración/manipulación aunque, bien es verdad, en otros sistemas es al
revés: 0 ver
dadero y 1 falso.

Tú dirás. Muchas gracias por todo
Jesús
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida