Problema con reinicio "personalizado" en windows 8.1

Iniciado por SARGE553413, 23 Agosto 2014, 13:35 PM

0 Miembros y 1 Visitante están viendo este tema.

SARGE553413

Hola a todos.

Hace poco, para instalar un programa que necesito, he tenido que reiniciar windows 8.1 con una determinada configuración.

Mi pregunta es como puedo cambiar las opciones de inicio del SO para que siempre se inicie con esa configuración.

Gracias, saludos.

PD: La configuración de inicio de la que hablo es la que permite instalar drivers "no seguros".

Eleкtro

#1
Cita de: SARGE553413 en 23 Agosto 2014, 13:35 PMMi pregunta es como puedo cambiar las opciones de inicio del SO para que siempre se inicie con esa configuración.

Una vez hayas establecido la configuración desde la herramienta BCDEdit de Microsoft (o desde el menú del msconfig, que hace lo mismo) puedes exportar esa configuración a un archivo local, y entonces lo que podrías hacer es agregar una entrada a la sección 'RUN' del registro para importar esa configuración en cada siguiente reinicio.

Prueba con este Script, en VBS, he escrito unos comentarios en el código explicando el funcionamiento:

Código (vb) [Seleccionar]
' Permanently restart in Normal Mode with 'Driver Signature Enforcement' disabled.
' By Elektro

If Not Msgbox( _
"¿Seguro que quieres reiniciar el equipo?", _
4 or 48, _
"Reiniciar en Modo Normal con permiso de Drivers sin firma digital..." _
) = vbNo _
Then

Set wshShell = WScript.CreateObject("WScript.Shell")

' Elimino las opciones de la configuracióna ctual.
wshShell.Run "bcdedit /deletevalue {current} loadoptions", 0, True
wshShell.Run "bcdedit /deletevalue {current} safeboot"   , 0, True

' Establezco las opciones de las firmas digitales de los Drivers.
wshShell.Run "bcdedit /set {current} loadoptions DISABLE_INTEGRITY_CHECKS", 0, True
wshShell.Run "bcdedit /set {current} TESTSIGNING OFF"                      , 0, True

' Exporto la configuración actual a un archivo.
TempFile = """" & wshShell.ExpandEnvironmentStrings("%WINDIR%\Bcdedit settings.bcd") & """"
wshShell.Run "bcdedit /export " & TempFile, 0, True

' Escribo una entrada de registro a la sección 'Run' para importar la configuración guardada en el archivo local,
' de esta manera la configuración se importará en cada siguiente reinicio.
wshShell.RegWrite _
"HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\*Import BCDEdit Settings - Unsigned Drivers",  _
"bcdedit.exe /import " & TempFile, _
"REG_SZ"
       ' Nota: También se importará al reiniciar en modo seguro, para que esto no suceda elimina el caracter del asterisco al principio dle nombre de la clave.

wshShell.Run "shutdown -r -t 00 -f", 0, False

End If


Nota: No me culpes si algún programa se te bloquea por culpa de desactivar el chequeo de firmas o si sufres cualquier otro problema, no me hago responsable, por algo esta configuración debería usarse de forma temporal y no permanente.

PD: Te sugiero probarlo en una máquina virtual antes que en tu SO Host.
PD2: El código solo lo he escrito, no lo he testeado.

Saludos!








SARGE553413

Ok gracias por el código.

Ya he configurado las opciones de reinicio con bcdedit, concretamente:

bcdedit -set loadoptions DDISABLE_INTEGRITY_CHECKS
bcdedit -set TESTSIGNING ON


Pero al reiniciar sigue sin funcionar, no lo entiendo.

Además si reinicio y compruebo el valor de loadoptions es DDISABLE_INTEGRITY_CHECKS.

¿Alguien sabe que ocurre?

Gracias, saludos.

Eleкtro

#3
Cita de: SARGE553413 en 23 Agosto 2014, 14:36 PM¿Alguien sabe que ocurre?

Correcto  : DISABLE_INTEGRITY_CHECKS
Incorrecto: DDISABLE_INTEGRITY_CHECKS


Ten en cuenta que el parámetro loadoptions toma cualquier valor que escribas como si fuera correcto, pero en realidad lo pusiste mal.

Aparte, según un viejo código que estoy viendo en mi biblioteca de Batch, el valor del otro parámetro sería OFF, no ON (yo también me equivoqué ahí en el script de vbs).
Cita de: elektro
Código (DOS) [Seleccionar]
Echo [+] Desactivar la verificacion de drivers no firmados
BCDEdit.exe /set "{current}" "loadoptions" "DISABLE_INTEGRITY_CHECKS"
BCDEdit.exe /set "{current}" "TESTSIGNING" "OFF"

Saludos!