5

Когда я запускаю команду выключения ACPI на гостевой машине Windows XP с хост-сервера VM, я хочу, чтобы Windows выключилась.

Проблема в том, что Windows всегда хочет задать тот или иной вопрос, а не просто отключиться. Мне нужно, чтобы отключение было надежным, независимо от того, что запущено или происходит, чтобы я мог автоматизировать выключения с главного компьютера. Но я хочу, чтобы это было как можно более изящно, а не просто выдергивало пробку.

Некоторые проблемы:

  • Если пользователь вошел в систему, завершение работы ACPI приводит к появлению поля с надписью: «Вы уверены, что хотите завершить работу, когда другие пользователи вошли в систему»? И это предотвращает отключение, пока кто-то не подключится к машине и не нажмет "да". В этом случае следует постараться изящно выйти из системы всех пользователей, при необходимости применяя силу, а затем завершить работу без продвижения.

  • Занятые или не отвечающие программы или программы, запрашивающие сохранение данных, могут препятствовать завершению работы Windows до тех пор, пока пользователь не ответит на запрос. Это должно попытаться сохранить данные, подождать, может быть, 30 секунд для не отвечающих программ, но должно стать агрессивным с упрямыми программами. "Нет, время вышло! 3,2,1, до свидания!"

Есть ли параметр реестра, который я могу изменить:

ACPI_Shutdown: "Shut down if Windows feels like it"

в

ACPI_Shutdown: "Just do it. Kill programs, bump users, try to be graceful about it, but when I come back, I expect you to be off."

Это должно отвечать на команду выключения ACPI, а не быть сценарием в Windows, если только этот сценарий не запускается кнопкой питания ACPI. Я надеюсь, что это можно изменить с помощью параметров реестра.

3 ответа3

1

Вероятно, было бы лучше, если бы вы как-то удалились в виртуальную машину и выполнили команду shutdown -s -t 0 которая начнет отключение без запроса пользователя.

Вы можете использовать PsExec от Sysinternal, чтобы сделать это из скрипта или командного файла.

В качестве альтернативы вы можете добавить виртуальный последовательный порт к вашей виртуальной машине, включить специальную консоль администрирования Windows XP и выполнить команду через SAC. Выполнение команд через SAC-файл / пакетный файл будет более сложным, но вы сможете выполнить отключение, даже если сеть экземпляра XP не работает.

Обновление: это может быть новой вещью в Vista/7 - похоже, что команда shutdown имеет флаг /p который, согласно команде help «Выключить локальный компьютер без тайм-аута или предупреждения».

Поэтому попробуйте shutdown -s -p -f и посмотрите, что вы получите. - Не берите в голову, просто прыгнул на мой компьютер XP, и у него нет опции /p ...

1

Для Windows XP я использую следующую команду на моем хосте Ubuntu:

VBoxManage guestcontrol "WinXPVM" выполнить --image "C:\Windows\system32\shutdown.exe" --username put_username_here --password put_password_here - -s -f -t 10

Последний аргумент - это время до начала фактического выключения - если вы хотите, чтобы оно началось сразу же, вы можете изменить его на -t 0

Надеюсь, это поможет любому :)

0

Похоже, что существует несколько значений групповой политики реестра, которые позволяют Windows XP/7 обрабатывать событие PowerPown ACPI без необходимости дополнительного взаимодействия с ОС. Также может потребоваться убедиться, что на панели управления /параметрах питания отключено нажатие кнопки питания, а также отключен режим ожидания монитора.

Windows XP

Добавить / установить следующие ключи реестра / значения

  • [DWORD] HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\system\shutdownwithoutlogon=1
  • [DWORD] HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\ShutdownWarningDialogTimeout=1

Если время предупреждения не истекло, можно добавить следующее (предупреждение *)

  • [DWORD] HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Error Message Instrument\EnableDefaultReply=1

* это заставит окна автоматически отвечать на дополнительные диалоги, такие как принудительный выход пользователя из системы

Windows 7

Добавить / установить следующие ключи / значения групповой политики

  • Computer Configuration\Windows Settings\Security Settings\Local Policies\Security Options\Shutdown: Allow system to be shut down without having to log on=Enabled
  • Computer Configuration\Administrative Templates\System\Display Shutdown Event Tracker=Disabled

ref, ref

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