Удобный способ включить / отключить Hyper-V в Windows 8

76

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

Фреди Требу
источник
Метод, который вы используете, является лучшим и единственным поддерживаемым методом.
Ramhound
1
@Ramhound Вы можете использовать dism.exe для включения функций из командной строки. Вот как мы автоматизируем установку .NET 3.5 на Windows 8, например. Теоретически вы также можете отключить функции, но я не пробовал.
Марк Аллен

Ответы:

66

Отказ от ответственности : я не сделал этого для удаления какой-либо функции, И в качестве последнего предупреждения, вероятно, будет множество обновлений 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.

Марк Аллен
источник
Спасибо !, это сработало как шарм. Это действительно перезапустилось дважды, но я не думаю, что есть способ преодолеть это. Кроме того, можно утверждать, что это не так уж и много лучше, чем переход к экрану функций Windows, но когда он оставлен на рабочем столе или прикреплен к стартовому экрану, это, безусловно, для ленивых людей, таких как я.
Фреди Требу
Конечно! Я рад, что это сработало. Да, обычно вещи командной строки используются для первоначальной настройки машин, поэтому, если вам нужно установить .NET 3.5, Hyper-V и кучу других вещей, вы можете сделать это полностью автоматически.
Марк Аллен
1
Возможно, вы захотите использовать /NoRestartв неинтерактивном режиме (при вызове из скрипта).
krlmlr
Ответ ниже с bcdeditнамного быстрее и единственная необходимая вещь (вам все равно придется перезапускать несмотря ни на что). Это то, что я делаю, когда мне нужно переключиться на VMWare.
user276648
@ user276648 Предполагается, что Hyper-V установлен, после чего наверняка, может быть. Я только отправил ответ, который я знал.
Марк Аллен
82

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

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

bcdedit /set hypervisorlaunchtype off

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

bcdedit /set hypervisorlaunchtype auto

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

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

тусклый
источник
1
Это тот путь, если вы разрабатываете приложения для Windows Phone на Microsoft Surface Pro 3 (поэтому вам нужен Hyper-V), но вы хотите, чтобы подключенный резервный работал, когда вы не активно разрабатываете (по состоянию на конец 2014 года подключенный резервный не поддерживается, когда гипервизор работает).
Chris
Просто для того, чтобы опубликовать обновление, поскольку я пришел сюда в поисках вышеуказанных команд снова (чтобы временно запустить VM Ware Player) - Windows 10 одновременно поддерживает Hyper-V и Connected Standby в Tech Preview, и я могу только предположить, что эта функция будет сохранена. до RTM. Кажется, до сих пор работал хорошо в предварительном просмотре на моем Surface Pro 3.
Дэн Харрис
Это спасло меня от многих разочарований. Hyper-V не нравится мой видеодрайвер, и dell блокирует обновления драйвера, поэтому я не могу использовать обновленные драйверы Intel. Я должен отключить Hyper-V, если я не хочу запускать несколько мониторов.
Эд Чарбено
10

Вы можете создать две загрузочные записи, чтобы решить, загружать ли ОС с или без 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
Maks
источник
Я видел это сейчас, и это кажется хорошим! Но еще не было времени попробовать это сам.
Фреди Требу
3
Просто примечание: если в Windows 10 вы должны использовать {current}. Просто запустите bcdedit, чтобы проверить. Кроме того, он не хочет работать в PowerShell для тех, кто его пробовал.
дотбат
1
В PowerShell вам нужно использовать кавычки для идентификатора. Например:bcdedit /set "{current}" hypervisorlaunchtype off
Кишкин
Это самый элегантный ответ на мой взгляд. Другой совет заключается в том, что вы можете удерживать Shiftклавишу при нажатии Start -> Power button -> Restart, что позволит вам выбрать, следует ли загружаться с включенной или не включенной Hyper-V до перезагрузки компьютера. Это особенно полезно, когда в BIOS включена некоторая форма «fastboot», и почти невозможно нажать клавишу «enter BIOS» до того, как загрузчик Windows получит контроль.
Бен Джонсон
лучший ответ на данный момент
Тянь Динь
8
  • Нажмите клавишу Windows и введите «функции Windows»
  • Нажмите комбинацию клавиш Windows + W, чтобы открыть панель «Параметры Windows» на начальном экране.
  • Нажмите на Включить или отключить функции Windows
  • Когда появится диалоговое окно «Включить или отключить функции Windows», найдите Hyper-V и отмените его выбор.
  • Нажмите ОК
  • Перезагрузите компьютер при появлении запроса
  • Установите VMware Workstation
  • Снова включите Hyper-V через диалоговое окно «Включение и выключение функций Windows».
  • Перезагрузите компьютер

Для Windows 10:

  • Нажмите клавишу Windows
  • Тип "Включение или отключение функций Windows"
  • Снимите флажок рядом с Hyper-V
  • Выберите ОК
  • Выберите Restart now
Алекс
источник
Я установил vs2013 в w8.1 и, по-видимому, он установил hyper v, чтобы мой vbox не работал. Спасибо за хороший постоянный ответ.
MvcCmsJon
4

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
AnneTheAgile
источник
3

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

ygoe
источник
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`
Дон уилсон
источник
0
  1. Из консоли Windows (CMD) с правами администратора:

Очистка и ведение хранилища компонентов Windows (WinSxS)

Dism /Online /Cleanup-Image /RestoreHealth
Dism.exe /online /Cleanup-Image /StartComponentCleanup

Анализирует системные файлы и восстанавливает при необходимости

sfc /scannow

(Согласно https://ugetfix.com/ask/how-to-disable-hyper-v-in-windows-10/ )

  1. Отключить автозапуск гипервизора при конфигурации загрузки
bcdedit /set {current} hypervisorlaunchtype off

(Источник: https://blogs.technet.microsoft.com/gmarchetti/2008/12/07/turning-hyper-v-on-and-off/ )

  1. Windows PowerShell (с правами администратора):
Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All

(Источники: https://ugetfix.com/ask/how-to-disable-hyper-v-in-windows-10/ и https://support.microsoft.com/en-us/help/3204980/virtualization- приложения-не-работать-вместе-с-гипер-v-device-g )

  1. Включить или отключить функции Windows -> Hyper-V все не отмечено

( Https://support.microsoft.com/en-us/help/3204980/virtualization-applications-do-not-work-together-with-hyper-v-device-g )

  1. Это ПК, Свойства, Диспетчер устройств, Системные устройства и удаление Hyper-V там же.

Для полноты картины некоторые проблемы виртуализации связаны с функциями безопасности Device Guard и Credential Guard:

  1. mmc.exe, добавьте оснастку «Политика локального компьютера» в разделе «Конфигурация компьютера / Административные шаблоны / Система / Защита устройства / Включить защиту на основе виртуализации».

  2. Изоляция ядра в Настройках / Обновление и безопасность / Безопасность Windows / Безопасность устройства / Изоляция ядра

(Ссылка: https://support.microsoft.com/en-us/help/3204980/virtualization-applications-do-not-work-together-with-hyper-v-device-g

https://www.tenforums.com/tutorials/68913-enable-disable-device-guard-windows-10-a.html ; https://blogs.technet.microsoft.com/ash/2016/03/02/windows-10-device-guard-and-credential-guard-demystified/

https://weblogs.asp.net/dixin/run-hyper-v-and-vmware-virtual-machines-on-windows-10

https://www.dell.com/support/article/lu/fr/lubsd1/sln304974/windows-10-enterprise-security-credential-guard-and-device-guard?lang=en ...)

Хосе Мануэль Гомес Альварес
источник