2. ¿Qué es el Registro de Windows?
• Base de datos jerárquica
• Almacena ajustes de configuración, opciones,
información sobre ajustes en aplicaciones de terceros,
configuraciones de controladores, interfaz de usuario. De
S.O. MS Windows.
4. HKEY_CLASSES_ROOT
• Contiene información sobre
aplicaciones registradas
• HKCR es una compilación de
HKCUSoftwareClasses basada
en el usuario y de
HKLMSoftwareClasses basada
en el equipo
5. HKEY_LOCAL_MACHINE
• Almacena configuraciones específicas del equipo
local.
• Las claves no se almacenan en disco. El núcleo del
sistema las mantiene en la memoria para asignar
allí las de más subclaves.
• Es una compilación de HKCUSoftwareClasses
basada en el usuario y de HKLMSoftwareClasses
basada en el equipo
• Contiene principalmente las subclaves: SAM,
SECURITY, SYSTEM y SOFTWARE. Estas se cargan
en el tiempo de arranque en sus respectivos
archivos (%SystemRoot%System32config).
• La subclave HARDWARE, es volátil y no se
almacena en un archivo. Muestra la vista de los
dispositivos PnP.
• La subclave BCD (Boot Configuration Data) se
almacena en memoria, almacenando los datos de
la configuración de arranque.
6. HKEY_USERS
• Contiene subclaves correspondientes
a las claves HKEY_CURRENT_USER de
cada perfil de usuario cargado
activamente en el equipo.
• Cargan los subárboles de usuario
correspondientes a los usuarios con
sesión iniciada en el algún momento.
7. HKEY_CURRENT_USER
• Almacena configuraciones específicas del
usuario con sesión iniciada en ese momento.
• La clave HKCU es un enlace a la subclave de
HKEY_USERS correspondiente al usuario.
• La configuración de cada usuario se almacena
en el archivo de perfil del usuario
%userprofile%NTUSER.DAT y
%UserProfile%AppDataLocalMicrosoftWi
ndowsUsrclass.dat
• Las configuraciones almacenadas en en esta
clave y por lo tanto alamacenadas en dicho
fichero, siguen de equipo en equipo a los
usuarios con perfil móvil.
8. HKEY_CURRENT_CONFIG
• Contiene información sobre la
subclave
HKLMSYSTEMCurrentControlSet
Hardware ProfileCurrent.
• Almacena la información sobre el
perfil de hardware que se está
utilizando en ese momento.
9. Tipos de valor de datos
• REG_SZ (valor cadena): Cadena de texto de longitud fija.
• REG_BINARY (valor binario): Datos binarios sin formato.
Información sobre componentes de hardware
• REG_DWORD (32bits) o REG_QWORD (64 bits): Datos
representados por un número de 4 bytes (32bits).
Parámetros de controladores de dispositivo y servicios
son de este tipo
• REG_EXPAND_SZ (cadena extensible): Cadena de
longitud variable. Variables que se resuelven cuando un
programa o servicio utiliza determinados datos.
• REG_MULTI_SZ (cadena múltiple): Cadena múltiple.
10. Tipos de valor de datos
REG_SZ REG_BINARY REG_DWORD (32bits)
REG_QWORD (64 bits)
13. Formas de editar el registro de Windows
• Editor de políticas de grupo local (gpedit.msc)
• Ficheros .INF (INFormation) almacenan información de
software los cuales pueden estar en sintaxis compatible con
regedit y cargar valores iniciales de configuración de un
determinado programa. Normalmente usados por las APIs.
• Archivos VBScript.
• Archivos de registro .REG.
• Ficheros por lotes .BAT (batch files)
16. Ejemplo fichero .vbs - VBScript
WSH (Windows Scripting Host)
• .RegWrite: Crear o modificar claves y valores.
• .RegRead: Leer e interpretar valores.
• .RegDelete: Eliminar claves y valores.
• .Run: Para iniciar programas o aplicaciones.
Crear una nueva clave:
wshShell.RegWrite "HKCUTestKey", ""
Crear un nuevo valor DWORD:
wshShell.RegWrite "HKCUTestKeyDWordTestValue", 1, "REG_DWORD"
Crea una nueva subclave y un valor de cadena en esa nueva subclave:
wshShell.RegWrite "HKCUTestKeySubKeyStringTestValue", "Test", "REG_SZ"
Leer los valores anteriores:
WScript.Echo "HKCUTestKeyDWordTestValue = " _
& wshShell.RegRead( "HKCUTestKeyDWordTestValue" )
WScript.Echo "HKCUTestKeySubKeyStringTestValue = """ _
& wshShell.RegRead( "HKCUTestKeySubKeyStringTestValue" ) & """"
Eliminar la subclave, la clave y los valores que contienen:
wshShell.RegDelete "HKCUTestKeySubKey"
wshShell.RegDelete "HKCUTestKey"
17. Modificar el registro con ficheros .REG
Windows Registry Editor Version 5.00
Para crear una clave:
[HKEY_CURRENT_USERSoftwareMiPrograma]
Un valor contenido en la clave anterior:
[HKEY_CURRENT_USERSoftwareMiPrograma]
"mi_valor"="como"
Para eliminar una clave antepone un signo menos (-):
[-HKEY_CURRENT_USERSoftwareMiPrograma]
Windows Registry Editor Version 5.00
Para eliminar un valor:
[HKEY_CURRENT_USERSoftwareMiPrograma]
"valor a quitar"=-
Al crear cualquier valor, se supone que es una cadena, por ejemplo para crear un valor
DWORD es necesario especificarlo:
[HKEY_CURRENT_USERSoftwareMiPrograma]
"mi_valor"= dword:000001
Si el carácter punto y coma (;) está delante de cualquier línea se ignora y es
considerada como un comentario:
[HKEY_CURRENT_USERSoftwareMiPrograma]
; esta línea es un comentario
Se guardan en ficheros con extensión .reg y se ejecutan, dependiendo lo que
se necesite modificar se necesitarán o no altos privilegios de usuario.
18. Ejemplos ficheros .REG
• Añadir opciones de apagar y reiniciar
el equipo en el menú contextual de
clic derecho
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOTDesktopBackgroundShellApagar]
[HKEY_CLASSES_ROOTDesktopBackgroundShellApagarcommand]
@="shutdown /s /t 0“
[HKEY_CLASSES_ROOTDesktopBackgroundShellReiniciar]
[HKEY_CLASSES_ROOTDesktopBackgroundShellReiniciarcommand]
@="shutdown /r /t 0"
• Ejecutar aplicaciones en el arranque del
sistema
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRun]
"MySQLWorkbench"="REG_EXPAND_SZ:C:Program FilesMySQLMySQL
Workbench 6.3 CEMySQLWorkbench.exe"
• Desactivar opciones de carpeta e opciones
de IE
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPolicies
Explorer]
"NoFolderOptions"=dword:0000001
[HKEY_CURRENT_USERSoftwarePoliciesMicrosoftInternet
ExplorerRestrictions]
"NoBrowserOptions"=dword:00000001
• Deshabilitar el clic derecho del
mouse
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVers
ionPoliciesExplorer]
"NoViewContextMenu"=dword:00000001
19. Modificar el registro desde una consola de
comandos CMD
• Sintaxis
REG ADD Clave /v NombreValor /t TipoDato /d Dato [/f]
REG DELETE Clave /v NombreValor [/f]
Se ejecutan directamente desde la consola de comandos CMD de Windows. Aunque
la misma sintaxis sería válida para procesos por lotes .bat
20. Modificadores de REG
• /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 vacío 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
21. Comparativa con ficheros .REG y el
comando REG
Fichero .reg:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USERPrueba]
"test"=dword:1
Consola de comandos CMD:
@echo off
REG ADD "HKCUPrueba" /v test /t REG_DWORD /d 1 /f
22. Ejemplos comando REG
• Ocultar unidad D:
REG ADD KEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer /v NoDrives /t
reg_dword /d 00000008
• Deshabilitar el Administrador de tareas
REG ADD HKCUSoftwareMicrosoftWindowsCurrentVersionPoliciesSystem /v DisableTaskMgr /t
REG_DWORD /d 1 /f
• Mostrar la clave, valor y datos que coincidan con 0F bajo la clave HKCU de los datos de tipo REG_BINARY.
REG QUERY HKCU /f 0F /d /t REG_BINARY
• Eliminar el valor del registro datoprueba HKLMSoftwareprueba
REG DELETE HKLMSoftwareprueba /v datoprueba
• Modificar el puerto por defecto de RDP (Remote Desktop Protocol).
REG ADD HKLMSYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp /v PortNumber /t
REG_DWORD /d ea60 /f
• Hacer lo mismo pero para un equipo remoto, donde el nombre del equipo remoto sea SATURNO
REG DELETE SATURNOHKLMSoftwareMiCo /v MTU
23. Uso del comando REGEDIT
• 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
No modifica el registro, simplemente nos permite gestionar
exportaciones e importaciones
25. Administración de registro de red remoto
Habilitar registro remoto
en una consola CMD:
SC START RemoteRegistry
26. API del registro propia de MS Windows
• Librería para la API de Windows “advapi32.dll”.
• Muchos lenguajes de programación ofrecen clases o funciones
integradas para esta API. Permitiendo que los programas
almacenen configuraciones en el registro.
• Funcionalidades para poder interactuar con el registro a través
de aplicaciones de terceros, son gracias al conjunto de funciones
que ofrece la API
28. ¿Conocer la clave y valor que afecta al cambio
que queremos realizar de la forma más rápida?
Analizar si funciona y es coherente con lo que queremos realizar