У меня есть окно Windows 7 с несколькими машинами проигрывателя VMWare, которые запускаются при загрузке. Я использую WMWare VIX и пакетный файл для выключения виртуальных машин, как так:Запуск пакетного файла при завершении работы Windows 7 перед закрытием программ (желательно нажать кнопку питания)
"C:\path\to\VMWare VIX\vmrun.exe" -T player stop "C:\path\to\machine.vmx" soft
То, что я хочу сделать, это запустить эти команды, когда хост машина выключена, так что мне не нужно, чтобы закрыть вниз каждую виртуальную машину отдельно. При развертывании выключения, скорее всего, начнется с короткого нажатия кнопки питания ACPI, а не из меню «Пуск». Пути, которые я пробовал, которые не работают (по крайней мере, не достаточно хорошо):
Групповые политики - Самый очевидный путь, но в Windows 7, опция для запуска сценариев завершения «асинхронно» является прошло.
В результате Windows сначала рассказывает обо всех открытых окнах, чтобы закрыть их, ответчики VM ответят, что они используются, и вы получите диалоговое окно «Сила закрытия». Только после VMWare Player и все остальное закрыты, скрипты запускаются, бесполезно.
Вы могли бы подумать, что это может быть изменено, но я думаю, что я помню, как видел официальную заметку MS в виде «нет, извините». Невозможно найти ссылку.Используйте один пакетный файл, который закрывает все виртуальные машины, а затем выключает хост в качестве ярлыка на рабочем столе вместо обычной кнопки выключения. - Работает, и это касается того, что я использую сейчас, при разработке.
Но с помощью кнопки питания ACPI инициируется нормальное завершение работы с тем же результатом, что и раньше, и было бы лучше, если бы конечный пользователь, который ежедневно включал и выключал машину, не нуждался бы в использовании монитора и мыши ,
То, что я сейчас ищу в Google, это способ изменить действие, вызванное нажатием кнопки физического питания. Windows позволяет выбирать между различными действиями, такими как Sleep, Hibernate, Restart и т. Д., Но можете ли вы изменить это на «Запустить этот .bat»? Или, может быть, вообще изменить поведение команды shutdown?Программно перехват сообщения о завершении работы, прекращение выключения, запуск командного файла, повторное инициирование выключения. Было проведено некоторое обсуждение перехвата остановки, например. here, here и here, но я все еще слишком много n00b на всех языках, кроме Ruby или Java, чтобы действительно понять, если и как это можно сделать в этом случае. Если кто-то может прояснить, как на самом деле сделать эту работу (не застревая на экране «Сила закрытия»), я хочу попробовать любой язык, который вы предлагаете.
По моему опыту, большинство настроек рабочих станций можно установить вручную в проигрывателе, изменив либо файл .vmx на основе каждой виртуальной машины, либо файл preferences.ini в% appdata% \ VMware. ([Sanbarrow.com] (http://sanbarrow.com/vmx.html) имеет отличную ссылку на то, какие параметры нужно установить.) Я попытался установить 'pref.backgroundOnClose =" true "' в preferences.ini, но он все еще отключается вниз при закрытии окна. Кроме того, при выключении я все еще застрял на экране «Force close». Но отличная идея, я буду играть с настройками и отчитываться. – lime
Хорошо, поэтому параметр 'pref.vmplayer.exit.vmAction =" disconnect "' и делает то, что он говорит при закрытии вручную (с бонусным сообщением об ошибке на Win7, а не на XP). Но при выключении хост-плеер как всегда сообщает, что машина используется, и не закрывается даже в этом отключенном состоянии. Можете попробовать с рабочей станцией, но я сомневаюсь. – lime