viernes, 10 de febrero de 2012

Como modificar claves y valores del registro usando la línea de comandos y archivos batch.

Mediante la línea de comandos es posible modificar, editar y cambiar cualquier valor o clave del registro de Windows sin tener que utilizar la herramienta Regedit. Aunque el método más fácil y practico es crear un archivo REG para agregarlo al registro, existe siempre la alternativa de la línea de comandos, que en ocasiones es el método ideal o el único posible, por ejemplo en casos que no hay acceso a Regedit o para crear aplicaciones ejecutables o archivos batch en las que la función que deseamos ejecutar requiere la modificación de un valor en el registro.

Para editar el registro está disponible en la consola de cmd el comando REG con varios subcomandos para usos específicos, su empleo no es difícil pero por supuesto, requiere de un cuidado especial la revisión de la sintaxis del cualquier código antes de ejecutarlo, por lo delicado de su objetivo y posible efecto desastroso.
También está disponible el comando REGEDIT para importar, exportar o eliminar configuraciones en el registro desde un archivo de texto plano .REG.



Como usar el comando REG para modificar claves y valores del registro.



El comando REG se compone de varios sub comandos, cada uno para un uso completamente diferente como se documentará mas adelante, de ellos REG QUERY, REG ADD, REG DELETE y REG COPY se pueden utilizar para hacer modificaciones en equipos remotos en la red, solo es necesario agregar \\NombreEquipo suponiendo que el servicio Registro Remoto (RemoteRegistry) este ejecutándose. Si no es así siempre es posible iniciarlo ejecutando el comando: NET START RemoteRegistry
Para el uso en la red sólo están disponibles las ramas del registro HKLM y HKU.
Los restantes sub comandos solo están disponibles para su uso en el equipo local. 


Sub comandos del comando REG

ComandoEmpleo
REG QUERYInquiere el valor de una clave
REG ADDAgrega una clave o valor
REG DELETEAgrega una clave o valor
REG COPYCopia claves y valores desde y hacia otro equipo o en el equipo local
REG SAVEGuarda claves del registro en archivos .HIV locales (archivo de subárbol)
REG RESTORERestaura archivo de subárbol que han sido guardados
REG LOAD, REG UNLOADTransfieren y mueven claves dentro del registro
REG COMPARECompara claves y valores dentro del registro
REG EXPORTExporta claves, subclaves y valores a un archivo REG
REG IMPORTImporta los datos exportados previamente desde un archivo REG
REG FLAGS


Como utilizar los comandos REG ADD y REG DELETE.



Una breve explicación de las posibilidades de empleo de los comandos REG ADD y REG DELETE, al ser los de uso más frecuentes en el equipo local.


Sintaxis
REG ADD Clave /v NombreValor /t TipoDato /d Dato [/f]
REG DELETE Clave /v NombreValor [/f]



Opciones
• /v Nombre del valor de clave seleccionada
• /s Se especifican todas las subclaves y valores de forma recursiva
• /f Fuerza la sobre escritura o eliminación sin avisar (opcional)
• /ve Establece valor vacio predeterminado (REG ADD)
• /d Datos que se asignan al nombre de valor (REG ADD)
• /va Elimina todos los valores en la clave actual (REG DELETE)
• /t Tipos de datos. Los tipos válidos son:
REG_SZ, REG_MULTI_SZ, REG_EXPAND_SZ, REG_DWORD, REG_QWORD, REG_BINARY, REG_NONE
Si se omite al usar el comando REG ADD, se asume que es REG_SZ.

En todos los casos se pueden usar las siguientes abreviaturas:
HKEY_CURRENT_USER = HKCU
HKEY_LOCAL_MACHINE = HKLM


Ejemplos del uso de los comandos REG ADD y REG DELETE.



Los siguientes ejemplos permiten comprender las diferencias y similitudes entre la creación de una clave del registro mediante un archivo REG y con un archivo batch que utiliza el comando REG ADD. 
En el primer caso se crea un valor vacío Predeterminado, en el segundo caso un valor Predeterminado con datos y en el tercer caso un valor DWORD de valor 1.
Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Prueba] @="" 
@echo off REG ADD "HKCU\Prueba" /ve /f
Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Prueba] @="Dato" 
@echo off REG ADD "HKCU\Prueba" /ve /t REG_SZ /d "Dato" /f
Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Prueba] "test"=dword:1
@echo off REG ADD "HKCU\Prueba" /v  test /t REG_DWORD /d 1  /f


En el siguiente ejemplo se utilizan tres líneas de código para comprobar si en la consola de cmd está habilitada la modalidad de Edición rápida, si no es así se establece.
1- Se hace una petición al registro para ver los valores de la clave y las subclaves que establecen la configuración de la consola de cmd
REG QUERY HKCU\Console\
2- Se pide que se muestre el valor exacto.
REG QUERY HKCU\Console\ /v  QuickEdit
3- Se establece la Edición rápida
REG ADD HKCU\Console\ /v  QuickEdit /d 1
Se agrega una entrada para deshabilitar el Administrador de tareas de Windows
REG ADD HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System\ /v DisableTaskMgr /t REG_DWORD /d 1 /f


Se elimina la entrada anterior

REG DELETE HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System\ /v DisableTaskMgr /f
Se agrega una entrada al registro para iniciar el archivo batch nombrado "aviso.cmd" que supuestamente se encuentra en la unidad C: con Windows
REG ADD HKCU \Software\Microsoft\Windows\CurrentVersion\Run /v IniciarProgramas /t REG_SZ /d "C:\aviso.cmd"

Archivo batch que ejecuta dos tareas, primero crea un nuevo batch en la carpeta Temp, la que puede estar en cualquiera ubicación física ya que se emplea la variable de entorno %TEMP%, el batch contiene un simple mensaje, "Eres una tonta, Todos los días veras esto....", a continuación utilizando el comando REG se agrega la entrada necesaria al registro para que al iniciarse Windows se ejecute el archivo batch correspondiente.
Solo es una broma, no hace ningún daño, fue hecho solo con objetivos pedagógicos, la entrada se puede desactivar fácilmente accediendo a la herramienta MSCONFIG o comentando la siguiente línea del archivo batch que elimina la entrada anterior.
Por otra parte el batch creado en la carpeta Temp será eliminado completamente al Liberar espacio en disco.
Nos da una idea de lo que se puede lograr con un simple archivo batch, por lo que antes de ejecutarlos es mejor siempre mirar el código y si no estamos seguros y aparece el comando REG por algún lado no ejecutarlos.
Para descomentar la línea final del archivo batch que elimina la entrada creada, solo es necesario quitar los dos puntos al comienzo de dicha línea.


@echo off
echo @echo off >%temp%\tonta.cmd
echo echo Eres una tonta >>%temp%\tonta.cmd
echo echo Todos los dias veras esto.....>>%temp%\tonta.cmd
echo echo.>>%temp%\tonta.cmd
echo pause^>nul>>%temp%\tonta.cmd
REG ADD HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run /v tonta /t REG_SZ /d "%temp%\tonta.cmd"
::REG DELETE HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run /v tonta /f 

Ejemplos de usos de los comandos REG EXPORT y REG IMPORT



Como exportar la configuración de los servicios del usuario en un archivo REG y despues importalos al registro.


REG EXPORT HKLM\SYSTEM\CurrentControlSet\Services C:\Servicios.reg REG IMPORT C:\Servicios.reg
Los datos del registro que se encuentren en la clave HKCU se podrán ver y modificar por el usuario de la sesión actual.
Los datos del registro que se encuentren en la clave HKLM se podrán ver por todos los usuarios, pero solo podrán ser modificados por el administrador.




Como usar el comando REGEDIT .



El comando REGEDIT permite importar, exportar o eliminar configuraciones en el registro desde un archivo de texto plano .REG.


Opciones:
• REGEDIT Abre el editor del registro
• REGEDIT /E ruta Exporta el registro
• REGEDIT /E ruta "Rama" Exporta parte del registro, sustituye Rama por el árbol correspondiente
• REGEDIT ruta Importa un archivo REG 
• REGEDIT /S ruta Importa un archivo REG de forma silenciosa

Como agregar claves y valores al registro con un archivo REG.



Crea un archivo de texto con los siguientes valores y guárdalo con la extensión de archivo: .reg (respeta la línea en blanco)
Windows Registry Editor Version 5.00   [HKEY_CURRENT_USER\Clave] "Cadena o Valor"="Valor"


Como eliminar claves y valores al registro con un archivo REG.



Inserta en el archivo REG un signo menos después del primer corchete, por ejemplo para eliminar la clave anterior usa:
Windows Registry Editor Version 5.00   [-HKEY_CURRENT_USER\Clave]


Los comentarios en los archivos REG pueden crearse si la línea que los contiene es antecedida o iniciada con el carácter ";"


Ejemplos del uso del comando REGEDIT.



Para guardar una copia solo de la rama HKEY_CURRENT_USER usa:
REGEDIT /E C:\Backup\copia.reg  "HKEY_CURRENT_USER"
Para guardar una copia completa del registro usa:
REGEDIT /E C:\Backup\copia.reg
Para restaurar una copia guardada del registro usa:
REGEDIT C:\Backup\copia.reg


Finalmente si te interesa toda la información de los comandos anteriores crea un archivo batch con el siguiente código que escribirá todas las opciones de estos comandos a un único archivo de texto creado en el escritorio nombrado "opciones-reg.doc".

@echo off REG QUERY /?>reg.doc REG ADD /?>>reg.doc REG DELETE /?>>reg.doc REG COPY /?>>reg.doc REG SAVE /?>>reg.doc REG RESTORE /?>>reg.doc REG LOAD /?>>reg.doc REG UNLOAD /?>>reg.doc REG COMPARE /?>>reg.doc REG EXPORT /?>>reg.doc REG IMPORT /?>>reg.doc REG FLAGS /?>>reg.doc  REGEDIT /?>>%userprofile%\Desktop\opciones-reg.doc


No hay comentarios:

Publicar un comentario