Hola, me gustaría ejecutar programas, compilados, como servicios o scritps antes de que se inicie la sesión en los Windows.
estoy haciendo unas pruebas con unos archivo Batch, al primero lo llamaré
prueba.cmd para que se ejecute de las primeras cosas en el sistema.
Para conseguirlo lo pongo el script en directorio
%windir%\system32\GroupPolicy\Machine\Scripts\Startup y luego lo activo ejecutando
GPEDIT.MSC y añadiendolo a
Directiva Equipo local-Configuración de Windows-Archivos de comandos (inicio/apagado) seleccionando el archivo con el selector del elemento Inicio.
Bien, esto también se puede hacer manualmente, añadiendo, el script al directorio, y editando el archivo
%windir%\system32\GroupPolicy\Machine\Scripts\scripts.ini para indicarselo:
[Startup]
0CmdLine=prueba.cmd
0Parameters=
Finalmente se tiene que indicar en el registro (si hubiesen otros scripts estos van numerados, el primero es el 0, el segundo el 1 ... dentro de ...\Scripts\Startup\0, en el archivo scripts.ini también se ve reflejado con el número inicial)
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\System\Scripts\Startup\0\0]
"Script"="prueba.cmd"
"Parameters"=""
"ExecTime"=hex(b):00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
Y si ahora quisiera añadir otro lo que haría sería añadir el archivo prueba2.cmd lo que haría sería primero crear el script en
%windir%\system32\GroupPolicy\Machine\Scripts\Startup y luego editar el archivo
%windir%\system32\GroupPolicy\Machine\Scripts\scripts.ini[Startup]
0CmdLine=prueba.cmd
0Parameters=
1CmdLine=prueba2.cmd
1Parameters=
para finalmente añadir las entradas al registro
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\System\Scripts\Startup\0\1]
"Script"="prueba2.cmd"
"Parameters"=""
"ExecTime"=hex(b):00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
Esto está muy bien, ya que así los ejecuto. Pero no veo nada por la pantalla. Y quiero que pueda haber interacción, no se ... por ejemplo ¿Pulsa una tecla para que destruya tu windows y salve a tu PC del CAOS hacia el que te dirige? Así de buena fe ...
Veamos donde pone el win que ejecute por ejemplo el scandisk ese que hace al inicio.
la llave del registro, donde se establecen estas entradas, tras hacer que añadiese la ejecución de un scandisk al inicio, es esta:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Managerdonde está
BootExecute, un valor
REG_MILTI_SZTendiendo este dato, he encontrado un blog muy interesante en la red, que además ofrece un código en
C++ para añadir valores, ya que van en Hexa (a la saca!!)
Cosas míasPero he probado de poner los archivos y no lo consigo ser interactivo
¿IDEAS?
SaludOS