Windows 2012: как заставить кнопку питания работать в каждом случае?

9

Мне нужно, чтобы некоторые серверы Windows 2012 были правильно отключены кнопкой питания.

  • Если никто не вошел, кнопка питания правильно выключает сервер
  • Если кто-то вошел в систему без программы блокировки, это тоже нормально

Но:

  • если сеанс заблокирован, кнопка питания ничего не делает
  • если кто-то вошел в систему с помощью программы блокировки (например, блокнот с несохраненным документом), кнопка тоже ничего не делает

В предыдущих версиях Windows меня использовали для настройки поведения кнопки питания с помощью графического интерфейса и изменения ключа реестра ( HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\system\shutdownwithoutlogon), но это, похоже, уже не актуально.

Кто-нибудь знает "официальный" способ или хитрость?

Редактировать:
системный журнал отображает событие каждый раз, когда я нажимаю кнопку питания. The kernel power manager has initiated a shutdown transitionс идентификатором события 109.
Когда сеанс заблокирован, за этим событием ничего не следует. И никаких других событий в других журналах.
Когда программа отказывается закрываться, у меня есть соответствующая запись в журнале, так что скоро все будет в порядке.

Грегори МУССАТ
источник
2
Покажите этим чертовски умным коммутаторам, которые действительно умны: выдерните F & & # # шнур питания из стены!
Опека - Восстановите Монику

Ответы:

5

Тот факт, что вы не можете выключить сервер 2012 года, когда сеанс заблокирован, возможно, умышленно. Я столкнулся с аналогичной необходимостью и не знаю никаких изменений в политике или реестре, чтобы это разрешить.

Я использовал простой трюк: я захватил событие кнопки питания, которое просто запускает мой любимый shutdown.exe с нужными параметрами после истечения времени ожидания.
Если вы используете правильные параметры выключения, вы не будете заблокированы открытыми программами.

Для захвата событий просто откройте планировщик задач и создайте задачу, запускаемую по нужному идентификатору события.

Бертран Щитс
источник
3
Для справки, я использую команду: shutdown / s / t 10 / dp: 0: 0
Грегори MOUSSAT
4
Также для справки событие в моем случае является базовым событием со следующими свойствами. Журнал: Система, Источник: Kernel-Power, Идентификатор события: 109
ndemou
1

Проверьте AutoEndTasks :

Вы можете установить его для всех пользователей, создав здесь ключ против HKCU: HKEY_USERS.DEFAULT \ Панель управления \ Рабочий стол

Кроме того, есть некоторые настройки, которые можно выполнить с помощью групповой политики, которые можно найти здесь: Конфигурация компьютера> Административные шаблоны> Система> Параметры выключения> Отключить автоматическое завершение приложений, которые блокируют или отменяют завершение работы

Дополнительные параметры настройки, которые вы можете посмотреть: WaitToKillServiceTimeout , WaitToKillAppTimeout , HungAppTimeOut

Я также буду следить за тем, что сказал MarcoZink, проверил ваш биос и убедился, что для вашей кнопки питания не настроены какие-либо специальные настройки, которые могли бы удерживать устройства.

NPS
источник
1
Я не стал бы повторять то, что MarcoZink заявил о BIOS, потому что вопрос четко гласит: «Если никто не вошел в систему, кнопка питания правильно выключает сервер»
ndemou