1

Прежде всего, извините. Это повторный пост моего первоначального вопроса, заданного на "stackoverflow", но я пытался заставить модераторов переместить его, потому что этот вопрос был скорее проблемой общего поведения окон, чем реальной проблемой кодирования, но безуспешно.

Но для бизнеса.

Я пытаюсь запустить BAT-скрипт, когда компьютер (под управлением Win10) получает команду на завершение работы, выход из системы или перезагрузку. Поскольку я иногда запускаю виртуальные машины (в VirtualBox), мой сценарий предназначен для поиска всех запущенных виртуальных машин, их приостановки и проверки того, что VM-интерфейсы все еще активны (поскольку это может привести к повреждению состояния паузы, требуется новая перезагрузка виртуальной машины). Скрипт протестирован и функционирует как задумано.

Моя проблема в том, что он запускается автоматически.

Я попытался добавить сценарий к GP в разделе «Конфигурация | Настройки Windows | Сценарии (вход / выход из системы) | Выход из системы», как было показано в предыдущих сообщениях. Казалось, это запускает выполнение скрипта, но не позволяет правильно завершить его перед выполнением фактического завершения работы.

Поэтому я продолжил поиск и в итоге изменил интересующее меня значение GP. В разделе «Конфигурация пользователя | Административные шаблоны | Система | Сценарии» я включил "Отображать инструкции в сценариях выхода из системы по мере их запуска". Это заставляет окна показывать командную строку и ждать ее закрытия, прежде чем продолжить выключение.

Но я все еще сталкиваюсь с проблемами. Моя текущая проблема заключается в том, что все вышеперечисленное все еще происходит с опозданием в процессе выключения. Когда я нажимаю кнопку выключения в меню «Пуск», мне сначала открывается всплывающее окно, информирующее меня о том, что у меня все еще есть запущенная программа (виртуальные машины), с возможностью принудительно остановить их. Только после этого (вынуждая мои виртуальные машины отключать не очень приятный способ), Windows фактически выполняет мой сценарий (который предназначался для сохранения виртуальных машин в надлежащем поместье).

Мой вопрос, поэтому, если есть способ, предпочтительно с использованием GP и / или планировщика задач, чтобы я мог заставить Windows выполнять мой BAT-скрипт (и ждать его завершения) при запуске shutdown / logoff / reboot, но до появляется сообщение "принудительно закрыть"?

С наилучшими пожеланиями Хенрик В. Нильсен

1 ответ1

0

Голь на выдумки хитра. Не уверен, что это применимо в случае вашей виртуальной машины, но:

Мой ответ для Windows 10 с использованием gpedit.msc и настройкой сценариев выхода из системы состоял в том, чтобы создать отдельный файл ping cmd с «ping -n 5 127.0.0.1», запущенным после критического. Это позволило моему «критическому» сценарию выхода из системы работать нормально.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .