
Tengo que instalar actualizaciones de Windows en varios sistemas independientes. Tengo que ejecutar mi script update_script.bat, pero a medida que recorre la instalación de cada actualización, los controles de UAC me solicitan mis credenciales. Entonces encontré una opción de línea de comando para desactivar UAC.
@echo off
echo Disabling UAC controls...
C:\Windows\System32\cmd.exe /k %windir%\System32\reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f
C:\Windows\System32\cmd.exe /k %windir%\System32\reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v ConsentPromptBehaviorAdmin /t REG_DWORD /d 0 /f
shutdown /l /f
De esta manera, cuando paso mis scripts a mis administradores subordinados, ellos pueden ejecutar rápidamente el primer script; los cerrará automáticamente y luego podrán ejecutar el segundo archivo de secuencia de comandos (update_script.bat), pero el problema que tengo es que cuando pruebo la primera secuencia de comandos para desactivar UAC, la ventana de comandos se detiene en:
Desactivando controles de UAC...
La operación se completó con éxito.
c:\actualizaciones>
en lugar de completar y cerrar la sesión del usuario por la fuerza.
¿Cómo consigo que el sistema/script fuerce el cierre de sesión después de desactivar los controles UAC?
Respuesta1
Eliminar
C:\Windows\System32\cmd.exe /k
del archivo por lotes.
La ejecución cmd.exe
iniciará un nuevo símbolo del sistema, que generalmente no es lo que desea dentro de un archivo por lotes.