72

Мне действительно нравится поддержка Hyper-V в Windows 8, однако в некоторых ситуациях мне нужно отключить Hyper-V, чтобы запускать некоторые приложения, которые не хотели бы выполняться даже в корневом разделе виртуализированной среды. ,
В данный момент я полностью отключил эту функцию в диалоговом окне "Добавить или удалить компоненты Windows" и перезапустил ее, включив при необходимости снова.
Я хотел бы знать, если есть какой-нибудь лучший способ сделать это, который приходит на ум, это может быть даже ярлык, который я могу дважды щелкнуть и на самом деле добавить или удалить функцию для меня и перезапустить (я думаю, это может быть возможно с скрипт PowerShell).

7 ответов7

75

Это старый ответ, но ради полноты и потому, что я знал, что есть лучший способ, чем лучший результат.

Из командной строки с повышенными правами:

bcdedit /set hypervisorlaunchtype off

отключить гипервизор и:

bcdedit /set hypervisorlaunchtype auto

включить его (значение по умолчанию).

Конечно, это все еще требует перезагрузки.

60

Отказ от ответственности: я не сделал этого для удаления какой-либо функции, и в качестве последнего предупреждения, вероятно, будет множество обновлений Windows Update, которые будут устанавливаться каждый раз, когда вы включаете его снова.

Сказав это, из командной строки с повышенными правами:

dism.exe /Online /Disable-Feature:Microsoft-Hyper-V

а также

dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All

Вот как работает команда enable на моем ПК, на котором уже включен и работает Hyper-V:

> dism /Online /enable-feature:Microsoft-Hyper-V /All

Средство обслуживания образов развертывания и управления ими Версия: 6.2.9200.16384

Версия изображения: 6.2.9200.16384

Включение функций [========================== 100.0% ================ ==========] Операция успешно завершена.

При включении этой функции, поскольку это Hyper-V, он может попросить вас перезагрузиться и снова запустить команду. Это кажется смутно знакомым. Другими словами, вы можете дважды перезагрузиться. Но, возможно, он не сделает этого с вами, так как на этой машине уже был включен Hyper-V.

8

Вы можете создать две загрузочные записи, чтобы выбрать загрузочную ОС с или без Hyper-V.

  1. Введите в командной строке следующее:
bcdedit /copy {default} /d "No Hypervisor"
  1. Это говорит:
"The entry was successfully copied to {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}."
  1. Затем введите следующую команду:
bcdedit /set {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} hypervisorlaunchtype off
7
  • Нажмите клавишу Windows и введите «функции Windows»
  • Нажмите комбинацию клавиш Windows + W, чтобы открыть панель «Параметры Windows» на начальном экране.
  • Нажмите, чтобы включить или отключить функции Windows
  • Когда появится диалоговое окно «Включить или отключить функции Windows», найдите Hyper-V и отмените его выбор.
  • Нажмите ОК
  • Перезагрузите компьютер при появлении запроса
  • Установите VMware Workstation
  • Снова включите Hyper-V через диалоговое окно «Включение и выключение функций Windows».
  • Перезагрузите компьютер

Для Windows 10:

  • Нажмите клавишу Windows
  • Тип "Включение или отключение функций Windows"
  • Снимите флажок рядом с Hyper-V
  • Выберите ОК
  • Выберите Перезагрузить сейчас
3

Вы можете использовать Hyper-V Switch, который в основном использует метод bcdedit, уже описанный здесь, но поверх него помещается простой графический интерфейс одним щелчком мыши. Он показывает текущее состояние конфигурации и позволяет включать или отключать Hyper-V, а также перезагружает компьютер. Я сделал этот маленький инструмент, и он работает на моем компьютере с Windows 10.

3

Powershell также возможен, используя DISM, упакованный как командлеты PS, и перед изменением можно прочитать настройки.

//Test
PS> Get-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All

//Turn off
PS> Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All

//Turn on
PS> Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V –All

Refs

  1. Powershell увидел в этом сообщении 2014-03, в котором обобщены все варианты, http://www.eightforums.com/tutorials/42041-hyper-v-enable-disable-windows-8-a.html ; MS Doc расскажет об опции Get-WindowsOptionalFeature, http://technet.microsoft.com/en-us/library/hh852173.aspx
  2. Редактирование данных конфигурации начальной загрузки (BECD) также может считывать (/ экспортировать) настройки в соответствии с http://technet.microsoft.com/en-us/library/cc709667%28v=ws.10%29.aspx и другими документами http://msdn.microsoft.com/en-us/library/windows/hardware/ff542202%28v=vs.85%29.aspx
1

Я сделал скрипт PowerShell, чтобы помочь включить / отключить Hyper-V. Это проверяет состояние, чтобы вы не перезагружались, если вы уже в нужном состоянии:

param([string]$state='Off')
'Set Hyper-V ' + $state
$lines = bcdedit
ForEach($line in $lines) {
    $pos = $line.IndexOf(' ')
    If($pos -gt 0) {
        $prompt = $line.Substring(0, $pos)
        $curstate = $line.Substring($pos).Trim()
        If($prompt -eq 'hypervisorlaunchtype') {
            '[' + $prompt + '] = [' + $curstate + ']'
            If($curstate -ne $state) {
                'Setting hypervisorlauchtype to ' + $state
                $result = bcdedit /set hypervisorlaunchtype $state
                'Result = [' + $result + ']'
                If($result -eq 'The operation completed successfully.') {
                    'Restarting in two seconds'
                    Start-Sleep -s 2
                    Restart-Computer
                } Else {
                    'Error setting state'
                    Start-Sleep -s 5
                }
            } Else {
                'Hypervisor launch type is already ' + $state
                Start-Sleep -s 5
            }
        }
    } 
}

Затем создайте два ярлыка на рабочем столе «Hyper-V Off» Цель:

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe C:\Scripts\SetHyper-V.ps1 -state Off

и цель "Hyper-V On":

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe C:\Scripts\SetHyper-V.ps1 -state Auto`

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