Как выполнить bat скрипт перед гибернацией Windows?
Под виндой перед уходом в гибернацию встала необходимость потушить несколько програм, отключить сетевой диск, и пара других вещей. Для всего этого написан bat скрипт который это все умеет делать.
Внимание вопрос. Как заставить винду перед уходом в гибернацию запустить этот скрипт, дождаться завершения его выполнения, и только потом уходить в спячку как положено? Повторюсь, очень важно запустить скрипт ДО ухода в гибернацию и дождаться завершения его выполнения.
Перед спящим режимом, выходом из сессии, и т.п. необходимости выполнять скрипт нет. Нужно только перед уходом в гибернацию.
Подобные вещи надо делать в планировщике заданий. Там есть возможность присосаться к огромному числу событий системы. Создавай задачу, выбирай когда выполнять и выбирай что ей делать.
Да, у меня была подобная мысль и я пробовал эксперементировать в эту сторону. Но тригера по уходу в гибернацию я не нашел. Есть общее событие и для спящего режима и для гибернации - System/Kernel-Power/event ID 42
Но, как показали эксперементы, событие обрабатывается уже ПОСЛЕ того как компьютер вышел из гибернации. Т.е. смотрим лог:
при этом скрипт: ECHO sleep42 %date% %time% >> "test.log"
по этому событию выполнен: sleep42 15.05.2018 0:09:49,31
т.е. аж после пробуждения.
Это же касается и спящего режима тоже. Т.е. само событие обрабатывается не до ухода в гибернацию/спящий режим, а после пробуждения из оного. Что соответственно мне не подходит(
Пуск > Выполнить > gpedit.msc > Конфигурация компьютера (или пользователя) > Конфигурация Windows > Сценарии
хотя до конца не уверен, но про выключением там точно есть, а гибернация как бы тоже способ выключения... :)
Как вариант решения - в настройках питания компа включить "Постоянно включен", возможно, только экран отключать, а последней строчкой в скрипте указать shutdown /h /t 60, скрипт запускать из планировщика задач, при простое, условия простоя можно указать в планировщике - как-то никаких других мыслей в голову не приходит. Подсказка