Datos personales

martes, 24 de noviembre de 2015

Modificar el Registro de Windows usando scripts creados en VBScript

Como crear y utilizar aplicaciones hechas en el lenguaje VBScript para crear, eliminar y cambiar los valores de las claves del Registro, uso de los métodos RegWrite, RegRead, RegDelete y Run. Códigos con ejemplos prácticos.
Modificar el Registro con scriptsA los que le interese el lenguaje VBScript, pueden usarlo fácilmente para hacer cambios en el Registro, ya sea crear nuevas entradas, modificarlas, crear claves, eliminarlas, etc.

¿Por qué utilizar VBScript, cuales son las ventajas?


El lenguaje VBScript, aunque complejo proporciona ventajas, una de ellas es que puede ser insertado en páginas web y ejecutadas desde el navegador del usuario, siempre que este sea Internet Explorer.
También con dichos scripts pueden crearse páginas o aplicaciones HTA, que funcionarán en todos los equipos que utilicen Windows, de la misma forma que otra aplicación cualquiera.
Lee más información en la siguiente página: Crear aplicaciones en VBScript para usar en Windows



¿Cómo crear los scripts ejecutables?


Para crear un script, solo es necesario copiar los códigos de ejemplos, al Bloc de notas u otro editor como Notepad+ y guardar el archivo con cualquier nombre, pero con la extensión de archivo VBS.
Al dar dos clics en dicho archivo, Windows ejecutará el código que contiene con Windows Scripting Host (wscript.exe).
Antes de usar cualquiera de los siguientes ejemplos, exporta la rama o clave del Registro a modificar (crea un archivo REG), para restaurarlo en caso de cualquier problema.



Usar VBScript para modificar el Registro


Se pueden usar varios métodos en VBScript, entre ellos:
.RegWrite Para crear o modificar claves y valores
.RegRead Leer e interpretar valores
.RegDelete Eliminar claves y valores
.Run Para iniciar programas o aplicaciones.

Ejemplo del uso de .RegWrite


Usa el siguiente código para crear un script VBS que permitirá usarlo como ejemplo para modificar una entrada sencilla, que mostrará la versión de Windows que utilizas en el Escritorio.
Copia y pega el código en el Bloc de notas y guarda el archivo con cualquier nombre, pero con la extensión: VBS.
strRoot = "HKEY_CURRENT_USER\Control Panel\Desktop\PaintDesktopVersion"
Set objShell = CreateObject("WScript.Shell")
strModify = objShell.RegWrite(strRoot,"00000001", "REG_DWORD")
Para ver el resultado en el Escritorio, solo Cierra e inicia sesión de nuevo.
Para ocultar la versión en el Escritorio, cambia el valor a 0 en el script.



Ejemplo del uso de .RegRead


Usa el siguiente script para mostrar un mensaje que indica si la edición en la consola de CMD está habilitada o no.
strRoot = "HKEY_CURRENT_USER\Console\QuickEdit"
Set objShell = CreateObject("WScript.Shell")
strModify = objShell.RegRead(strRoot)
If strModify = "1" then 
   strBuild = " Habilitada"
   Else strBuild =" Deshabilitada"
   End If
WScript.Echo "La edición en la consola de CMD está: " & strBuild
strModify = null
WScript.Quit



Ejemplo del uso de .RegDelete


Antes de usar el método .RegDelete, hay que conocer la importancia del uso de la barra inclinada (slash) al final de una ruta.
Por ejemplo al usar .RegDelete en: HKEY_CURRENT_USER\Console\QuickEdit, solo eliminará el valor QuickEdit.
Al utilizarlo en: HKEY_CURRENT_USER\Console\QuickEdit\, eliminará la clave completa.

Con el siguiente script podemos crear una nueva clave de ejemplo:
strRoot = "HKEY_CURRENT_USER\Control Panel\NorfiPC\ejemplo"
Set objShell = CreateObject("WScript.Shell")
strModify = objShell.RegWrite(strRoot,"00000001", "REG_DWORD")

Con el siguiente la eliminaremos completamente:
strRoot = "HKEY_CURRENT_USER\Control Panel\NorfiPC\"
Set objShell = CreateObject("WScript.Shell")
strModify = objShell.RegDelete(strRoot)



Ejemplos del uso de .Run


El siguiente script inicia Regedit
Set objShell = CreateObject("Wscript.Shell")
objShell.Run "regedit.exe"

El siguiente script abre el documento especificado en la ruta.
Set objShell = CreateObject("WScript.Shell")
strCommand = "D:\Documentos\Modificar.docx"
objShell.Run strCommand, 1,true

Los cambios y modificaciones hechos en el Registro, para verlos en ocasiones solo es necesario refrescar usando la tecla F5.
Para los hechos en la rama HKEY_CURRENT_USER a veces necesitan cerrar e iniciar sesión.
Los hechos en la rama HKEY_LOCAL_MACHINE en ocasiones basta necesita reiniciar el explorador, si no es necesario reiniciar completamente el equipo.
Para reiniciar el explorador de forma sencilla, solo introduce en el cuadro de Inicio y presiona la tecla Enter:
cmd /c TASKKILL /F /IM explorer.exe && timeout /nobreak 04 & start explorer.exe





Scripts para optimizar el funcionamiento de Windows


Varios ejemplos de códigos para crear scripts, que permiten optimizar el sistema, específicamente el uso de la memoria RAM en el equipo y afinar el sistema de archivo.
Más información sobre su funcionamiento, puedes encontrar en las siguientes páginas:
➔ Modificar el Registro de Windows, optimizar el uso de la memoria RAM del equipo
➔ Modificar el Registro de Windows, optimizar el uso del sistema de archivos

Deshabilitar la paginación de la memoria en Windows

'Escrito por Norfi, http://norfipc.com/
'Este script modifica la clave Memory Management
'Cambia el valor DWORD: DisablePagingExecutive a 1

Dim wshShell, RegKey
Set wshShell = Wscript.CreateObject("Wscript.Shell")
msgIntro = msgBox("Este script deshabilitará la paginación del nucleo" & vbCrlf & "Desea continuar?", vbYesNo+vbQuestion)
If msgIntro = vbNo then Wscript.Quit
RegKey = "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\"
wshShell.regWrite RegKey & "DisablePagingExecutive", 00000001, "REG_DWORD"
Set objWshell = Nothing
Wscript.Quit


Mayor tamaño para la caché del sistema

'Escrito por Norfi, http://norfipc.com/
'Este script modifica la clave Memory Management
'Cambia el valor DWORD: LargeSystemCache a 1

Dim wshShell, RegKey
Set wshShell = Wscript.CreateObject("Wscript.Shell")
msgIntro = msgBox("Este scrip establece LargeSystemCache en 1" & vbCrlf & "Desea continuar?", vbYesNo+vbQuestion)
If msgIntro = vbNo then Wscript.Quit
RegKey = "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\"
wshShell.regWrite RegKey & "LargeSystemCache", 00000001, "REG_DWORD"
Set objWshell = Nothing
Wscript.Quit


Deshabilitar la creación de nombres 8.3


'Escrito por Norfi, http://norfipc.com/
'Este script modifica la clave FileSystem
'Cambia el valor DWORD: NtfsDisable8dot3NameCreation a 1

Dim wshShell, RegKey
Set wshShell = Wscript.CreateObject("Wscript.Shell")
msgIntro = msgBox("Este scrip establece el valor NtfsDisable8dot3NameCreation en 1" & vbCrlf & "Desea continuar?", vbYesNo+vbQuestion)
If msgIntro = vbNo then Wscript.Quit
RegKey = "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\FileSystem\"
wshShell.regWrite RegKey & "NtfsDisable8dot3NameCreation", 00000001, "REG_DWORD"
Set objWshell = Nothing
Wscript.Quit

Deshabilitar la actualización de acceso a archivos

'Escrito por Norfi, http://norfipc.com/
'Este script modifica la clave FileSystem
'Cambia el valor DWORD: NtfsDisableLastAccessUpdate a 1

Dim wshShell, RegKey
Set wshShell = Wscript.CreateObject("Wscript.Shell")
msgIntro = msgBox("Este scrip establecerá NtfsDisableLastAccessUpdate en 1" & vbCrlf & "Desea continuar?", vbYesNo+vbQuestion)
If msgIntro = vbNo then Wscript.Quit
RegKey = "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\FileSystem\"
wshShell.regWrite RegKey & "NtfsDisableLastAccessUpdate", 00000001, "REG_DWORD"
Set objWshell = Nothing
Wscript.Quit


Incrementar la cantidad de memoria en la paginación para NTFS

'Escrito por Norfi, http://norfipc.com/
'Este script modifica la clave FileSystem
'Cambia el valor DWORD: NtfsMemoryUsage en 2

Dim wshShell, RegKey
Set wshShell = Wscript.CreateObject("Wscript.Shell")
msgIntro = msgBox("Este scrip establece el valor de NtfsMemoryUsage en 2" & vbCrlf & "Desea continuar?", vbYesNo+vbQuestion)
If msgIntro = vbNo then Wscript.Quit
RegKey = "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\FileSystem\"
wshShell.regWrite RegKey & "NtfsMemoryUsage", 00000002, "REG_DWORD"
Set objWshell = Nothing
Wscript.Quit


No hay comentarios:

Publicar un comentario