Windows 2012: como fazer o botão liga / desliga funcionar em todos os casos?

9

Eu preciso que alguns servidores Windows 2012 sejam desligados corretamente com o botão liga / desliga.

  • Se ninguém estiver conectado, o botão liga / desliga desliga o servidor corretamente
  • Se alguém estiver logado sem um programa de bloqueio, tudo bem também

Mas:

  • se uma sessão estiver bloqueada, o botão liga / desliga não faz nada
  • se alguém estiver logado com um programa de bloqueio (bloco de notas com um documento não salvo, por exemplo), o botão também não fará nada

Nas versões anteriores do Windows, eu era usado para configurar o comportamento do botão liga / desliga com a GUI e modificar uma chave do Registro ( HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\system\shutdownwithoutlogon), mas isso não parece mais relevante.

Alguém sabe o caminho "oficial", ou um truque?

Editar:
o log do sistema exibe um evento cada vez que pressiono o botão liga / desliga. The kernel power manager has initiated a shutdown transitioncom o ID de evento 109.
Quando a sessão está bloqueada, este evento é seguido por nada. E nenhum outro evento em outros logs.
Quando um programa se recusa a fechar, eu tenho a entrada de log correspondente, então tudo ficará bem em breve.

Gregory MOUSSAT
fonte
2
Mostre aos malditos interruptores inteligentes que são realmente inteligentes: puxe o cabo de alimentação da parede!
Ala - Restabelece Monica

Respostas:

5

O fato de você não poder desligar um servidor 2012 quando uma sessão está bloqueada é provavelmente por design. Enfrentei uma necessidade semelhante e não conheço nenhuma alteração de política ou registro para permitir isso.

Usei um truque simples: capturei o evento do botão liga / desliga, que simplesmente executava meu shutdown.exe favorito com os parâmetros desejados após um tempo limite.
Se você usar os parâmetros de desligamento corretos, não será bloqueado por programas abertos.

Para capturar eventos, basta abrir o agendador de tarefas e criar uma tarefa acionada no ID do evento desejado.

Bertrand SCHITS
fonte
3
Para referência, o comando que eu uso é: shutdown / s / t 10 / dp: 0: 0
Gregory MOUSSAT
4
Também para referência, o evento no meu caso é um evento básico com essas propriedades Log: System, Source: Kernel-Power, Event-ID: 109
ndemou
1

Confira AutoEndTasks :

Você pode configurá-lo para todos os usuários criando a chave aqui vs HKCU: HKEY_USERS.DEFAULT \ Control Panel \ Desktop

Além disso, há alguns ajustes que podem ser feitos via diretiva de grupo, que pode ser encontrada aqui: Configuração do computador> Modelos administrativos> Sistema> Opções de desligamento> Desativar o encerramento automático de aplicativos que bloqueiam ou cancelam o desligamento

Opções de ajuste adicionais que você pode querer procurar são: WaitToKillServiceTimeout , WaitToKillAppTimeout , HungAppTimeOut

Também vou explicar o que o MarcoZink afirmou, verificar sua BIOS e verificar se não há nenhuma configuração especial configurada para o botão liga / desliga que possa estar atrasando as coisas.

NPS
fonte
1
Eu não concordaria com o que MarcoZink afirmou sobre o BIOS porque a pergunta afirma claramente "Se ninguém estiver logado, o botão
liga