Windows – Acceso al registro desde MS-Dos

    Muchas veces, es necesario sacar algún valor de registro para alguno de nuestros scripts. Es poco conocida la posibilidad de obtener ese valor desde MS-Dos.

El comando REG nos permite trabajar con el registro desde la consola de MS-Dos. Añadir claves, Borrar claves, etc.

Ejemplo practico de acceso al registro desde MS-Dos.

Vamos a ver su utilidad con un ejemplo practico. Suponemos que queremos sacar la fecha de la ultima actualización del antivirus, podemos 2 cosas:

  1. Ir a Ayuda -> Acerca de … y ahí vemos la fecha de actualización.
  2. Inicio ->Ejecutar ->regedit.exe y ahí navegar hasta la rama del registro donde esta guardado el valor con la fecha de la ultima actualización.
¿Por que elegiremos la segunda opción? Por que una vez que hayamos localizado la rama en la que se encuentra el valor, podremos automatizar esta tarea. Si ejecutamos:

 

C:Documents and SettingsJSIERRA>REG QUERY "HKLMSOFTWARENetwork AssociatesTVDShared ComponentsVirusScan Engine4.0.xx"

! REG.EXE VERSION 3.0

HKEY_LOCAL_MACHINESOFTWARENetwork AssociatesTVDShared ComponentsVirusScan Engine4.0.xx
szVirDefVer REG_SZ  4.0.4761
DAT REG_SZ  C:Archivos de programaArchivos comunesNetwork AssociatesEngine    szVirDefDate        REG_SZ  12 mayo 2006
szEngineVer REG_SZ  4.4.00
szInstallDir        REG_SZ  C:Archivos de programaArchivos comunesNetwork
AssociatesEngine

Obtenemos la fecha de ultima actualización del antivirus: REG_SZ 7 abril 2006

Si tenemos instaladas las UnixUtils podemos usar el grep para obtener solo lo que queremos.

C:Documents and SettingsXXXX>REG QUERY "HKLMSOFTWARENetwork AssociatesTVDShared ComponentsVirusScan Engine4.0.xx" |grep szVirDefDate
En este caso: szVirDefDate REG_SZ 7 abril 2006

¿Donde esta aqui la automatización?

Supongamos que tenemos una red de muchos ordenadores y queremos saber si estan todos actualizados… Sigamos desarrollando el script RevisaActualizacionAntivirus.bat:

set RUTA="k:temporalVersionAntivirus.log"
@echo off
echo ==== >> %RUTA%
set |grep COMPUTERNAME >> %RUTA%
ipconfig | grep "Dirección IP" >> %RUTA%
REG QUERY "HKLMSOFTWARENetwork AssociatesTVDShared ComponentsVirusScan Engine4.0.xx" |grep szVirDefDate>> %RUTA%
echo ==== >> %RUTA%
Este script nos guarda en el fichero k:temporalVersionAntivirus.log un log de este estilo:
====
COMPUTERNAME=MAQUINA
szVirDefDate REG_SZ 7 abril 2006
====

Integrando todo con un dominio samba o windows o incluso en un workgroup.

Solo nos faltaría ejecutar este script en todos los equipos. Para ello tenemos varias posibilidades

  1. Poner el script en el script de arranque del dominio o NETLOGON (valido para dominios montados con SAMBA tambien).
  2. Usar el Psexec para lanzarlo remotamente en todas las maquinas (caso de tener un workgroup).
  3. Asignando este script a una politica de inicio/apagado del equipo o inicio/cierre de sesión (valido para dominios Windows).

Share

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>