elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Crear un Script para cambiar un Registro
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Crear un Script para cambiar un Registro  (Leído 3,316 veces)
javifergavilan

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Crear un Script para cambiar un Registro
« en: 19 Septiembre 2021, 18:10 pm »

Hola Buenos dias a Todos:

Necesito Crear un Script con código para poder cambiar los valores de un Registro.

El Resgistro que quiero cambiar es :
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contro l\Session Manager\SubSystems\Windows

su valor es :

%SystemRoot%\system32\csrss.exe ObjectDirectory=\Windows SharedSection=1024,20480,768 Windows=On SubSystemType=Windows ServerDll=basesrv,1 ServerDll=winsrv:UserServerDllInitialization,3 ServerDll=sxssrv,4 ProfileControl=Off MaxRequestThreads=16

Quiero cambiar "Windows SharedSection=1024,20480,768" por "Windows SharedSection=1024,20480,2048"

Entrando con Regedit se hacerlo pero no con código en un Script.

Necesito que maquina ejecute mas procesos y por eso necesito cambiar ese valor para que me funcione una aplicación

Si alguien puede ayudarme lo agradezco.

Gracias.


En línea

EdePC
Moderador Global
***
Desconectado Desconectado

Mensajes: 2.176



Ver Perfil
Re: Crear un Script para cambiar un Registro
« Respuesta #1 en: 19 Septiembre 2021, 18:59 pm »

Saludos,

Puedes usar los Tokens que permite For /F, es decir, cortar en trozos la salida de un comando mediante un caracter (en este caso el la Coma y el Espacio) y luego solo tomar los trozos que uno necesite:

Código
  1. @Echo Off
  2. For /F "tokens=3,4,5,6,8,* delims=, " %%a In (
  3.  'Reg Query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems" /V Windows'
  4. ) Do (
  5.  Echo %%a %%b %%c,%%d,2048 %%e %%f
  6. )

Lo cual devuelve:

Citar
%SystemRoot%\system32\csrss.exe ObjectDirectory=\Windows SharedSection=1024,20480,2048 Windows=On SubSystemType=Windows
ServerDll=basesrv,1 ServerDll=winsrv:UserServerDllInitialization,3 ServerDll=sxssrv,4 ProfileControl=Off MaxRequestThrea
ds=16

---
Teniendo en cuenta que los Tokens completos serían

+-------------------------------------------------------------+--------------------+
| 1                                                           | 2                  |
+-------------------------------------------------------------+--------------------+
| HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session | Manager\SubSystems |
+-------------------------------------------------------------+--------------------+
| Windows                                                     | REG_EXPAND_SZ      |
+-------------------------------------------------------------+--------------------+

+---------------------------------+--------------------------+--------------------+
| 3                               | 4                        | 5                  |
+---------------------------------+--------------------------+--------------------+
|                                 |                          |                    |
+---------------------------------+--------------------------+--------------------+
| %SystemRoot%\system32\csrss.exe | ObjectDirectory=\Windows | SharedSection=1024 |
+---------------------------------+--------------------------+--------------------+

+-------+-----+------------+
| 6     | 7   | 8          |
+-------+-----+------------+
|       |     |            |
+-------+-----+------------+
| 20480 | 768 | Windows=On |
+-------+-----+------------+

+-------------------------------------------------------------------------------------------------------
| *                                                                                                                                    
+-------------------------------------------------------------------------------------------------------
|                                                                                                                                      
+-------------------------------------------------------------------------------------------------------
| SubSystemType=Windows ServerDll=basesrv,1 ServerDll=winsrv:UserServerDllInitialization,3 ServerDll=sxssrv,4 ProfileControl=Off MaxRequestThreads=16
+-------------------------------------------------------------------------------------------------------


La primera línea se pierde (obvia) porque no tiene el token 3

Para que haga la modificación en el Registro debes cambiar el Echo por un Reg Add así:

Código
  1. @Echo Off
  2. For /F "tokens=3,4,5,6,8,* delims=, " %%a In (
  3.  'Reg Query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems" /V Windows'
  4. ) Do (
  5.  Echo %%a %%b %%c,%%d,2048 %%e %%f
  6.  Reg Add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems" /V Windows /T REG_EXPAND_SZ /D "%%a %%b %%c,%%d,2048 %%e %%f" /F
  7. )

También recuerda que como se está modificando un valor de HKLM será necesario ejecutar el Script con permisos de Administrador


« Última modificación: 19 Septiembre 2021, 19:02 pm por EdePC » En línea

javifergavilan

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Crear un Script para cambiar un Registro
« Respuesta #2 en: 19 Septiembre 2021, 19:27 pm »

Muchisimas Gracias...

Me va perfecto, siempre que le des permisos de administrador.

un saludo.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines