Выполнение пакетного скрипта в Windows 10 завершение работы / выход из системы / перезагрузка
Прежде всего, извините. Это повторный пост моего первоначального вопроса, заданного на "stackoverflow", но я пытался заставить модераторов переместить его, поскольку этот вопрос был скорее проблемой общего поведения окон, чем реальной проблемой кодирования, но безуспешно.
Но для бизнеса.
Я пытаюсь запустить BAT-скрипт, когда компьютер (под управлением Win10) получает команду на завершение работы, выход из системы или перезагрузку. Поскольку я иногда запускаю виртуальные машины (в VirtualBox), мой сценарий предназначен для поиска всех работающих виртуальных машин, их приостановки и проверки того, что VM-интерфейсы все еще активны (поскольку это может привести к повреждению состояния паузы, требуется новая перезагрузка виртуальной машины). Скрипт протестирован и функционирует как задумано.
Моя проблема в том, что он запускается автоматически.
Я попытался добавить сценарий к GP в разделе "Конфигурация | Настройки Windows | Сценарии (вход / выход из системы) | Выход из системы", как было показано в предыдущих сообщениях. Казалось, это запускает выполнение скрипта, но не позволяет правильно завершить его перед выполнением фактического завершения работы.
Поэтому я искал и в конечном итоге изменил другую ценность GP. В разделе "Конфигурация пользователя | Административные шаблоны | Система | Сценарии" я включил "Отображать инструкции в сценариях выхода из системы по мере их запуска". Это заставляет окна показывать командную строку и ждать ее закрытия, прежде чем продолжить выключение.
Но я все еще сталкиваюсь с проблемами. Моя текущая проблема заключается в том, что все вышеперечисленное все еще происходит с опозданием в процессе выключения. Когда я нажимаю кнопку выключения в меню "Пуск", мне сначала открывается всплывающее окно, информирующее меня о том, что у меня все еще есть запущенная программа (виртуальные машины), с возможностью принудительно остановить их. Только после этого (вынуждая мои виртуальные машины отключать не очень приятный способ), Windows фактически выполняет мой сценарий (который предназначался для сохранения виртуальных машин в надлежащем поместье).
Мой вопрос, поэтому, если есть способ, предпочтительно с помощью GP и / или планировщика задач, чтобы я мог заставить Windows выполнять мой BAT-скрипт (и ждать его завершения) при запуске shutdown/logoff/reboot, но до появляется подсказка "принудительное закрытие"?
С наилучшими пожеланиями Хенрик В. Нильсен
1 ответ
Голь на выдумки хитра. Не уверен, что это применимо в случае вашей виртуальной машины, но:
Мой ответ для Windows 10 с использованием gpedit.msc и настройкой сценариев выхода из системы состоял в том, чтобы создать отдельный файл ping cmd с "ping -n 5 127.0.0.1", запущенным после критического. Это позволило моему "критическому" сценарию выхода из системы работать нормально.