Windows 2012: ¿cómo hacer que el botón de encendido funcione en todos los casos?

9

Necesito que algunos servidores de Windows 2012 se apaguen correctamente con el botón de encendido.

  • Si no hay nadie registrado, el botón de encendido apaga correctamente el servidor
  • Si alguien inicia sesión sin un programa de bloqueo, también está bien

Pero:

  • Si una sesión está bloqueada, el botón de encendido no hace nada
  • Si alguien ha iniciado sesión con un programa de bloqueo (por ejemplo, un bloc de notas con un documento no guardado), el botón tampoco hace nada

Con versiones anteriores de Windows, estaba acostumbrado a configurar el comportamiento del botón de encendido con la GUI y modificar una clave de registro ( HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\system\shutdownwithoutlogon), pero esto no parece ser más relevante.

¿Alguien sabe la forma "oficial", o un truco?

Editar:
el registro del sistema muestra un evento cada vez que presiono el botón de encendido. The kernel power manager has initiated a shutdown transitioncon ID de evento 109.
Cuando la sesión está bloqueada, este evento es seguido por nada. Y no hay otros eventos en otros registros.
Cuando un programa se niega a cerrar, tengo la entrada de registro correspondiente, por lo que esto estará bien pronto.

Gregory MOUSSAT
fuente
2
Muestre a esos malditos interruptores inteligentes quién es realmente inteligente: ¡tire de la pared con el cable de alimentación F ^ &% # ing!
Ward - Restablece a Monica

Respuestas:

5

El hecho de que no pueda apagar un servidor 2012 cuando una sesión está bloqueada probablemente sea por diseño. Me enfrenté a una necesidad similar y no conozco ningún cambio de política o registro para permitir eso.

Utilicé un truco simple: capturé el evento del botón de encendido que simplemente ejecutó mi shutdown.exe favorito con los parámetros deseados después de un tiempo de espera.
Si usa los parámetros de apagado correctos, no será bloqueado por los programas abiertos.

Para capturar eventos, simplemente abra el programador de tareas y cree una tarea activada en el ID de evento deseado.

Bertrand SCHITS
fuente
3
Como referencia, el comando que uso es: shutdown / s / t 10 / dp: 0: 0
Gregory MOUSSAT
44
También para referencia, el evento en mi caso es un evento básico con estas propiedades Registro: Sistema, Fuente: Kernel-Power, Event-ID: 109
ndemou
1

Echa un vistazo a AutoEndTasks :

Puede configurarlo para todos los usuarios creando la clave aquí vs HKCU: HKEY_USERS.DEFAULT \ Control Panel \ Desktop

Además, hay algunos ajustes que se pueden hacer a través de la política de grupo que se puede encontrar aquí: Configuración de la computadora> Plantillas administrativas> Sistema> Opciones de apagado> Desactivar la finalización automática de aplicaciones que bloquean o cancelan el apagado

Las opciones de ajuste adicionales que puede considerar son: WaitToKillServiceTimeout , WaitToKillAppTimeout , HungAppTimeOut

También mencionaré lo que MarcoZink dijo, verifique su BIOS y verifique que no haya ninguna configuración especial configurada para su botón de encendido que pueda estar retrasando las cosas.

NPS
fuente
1
No me gustaría secundar lo que MarcoZink dijo sobre el BIOS porque la pregunta dice claramente "Si nadie está conectado, el botón de encendido apaga correctamente el servidor"
ndemou