Мне действительно нравится поддержка Hyper-V в Windows 8, однако в некоторых ситуациях мне нужно отключить Hyper-V, чтобы запускать некоторые приложения, которые не хотели бы выполняться даже в корневом разделе виртуализированной среды. ,
В данный момент я полностью отключил эту функцию в диалоговом окне "Добавить или удалить компоненты Windows" и перезапустил ее, включив при необходимости снова.
Я хотел бы знать, если есть какой-нибудь лучший способ сделать это, который приходит на ум, это может быть даже ярлык, который я могу дважды щелкнуть и на самом деле добавить или удалить функцию для меня и перезапустить (я думаю, это может быть возможно с скрипт PowerShell).
7 ответов
Это старый ответ, но ради полноты и потому, что я знал, что есть лучший способ, чем лучший результат.
Из командной строки с повышенными правами:
bcdedit /set hypervisorlaunchtype off
отключить гипервизор и:
bcdedit /set hypervisorlaunchtype auto
включить его (значение по умолчанию).
Конечно, это все еще требует перезагрузки.
Отказ от ответственности: я не сделал этого для удаления какой-либо функции, и в качестве последнего предупреждения, вероятно, будет множество обновлений 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.
Вы можете создать две загрузочные записи, чтобы выбрать загрузочную ОС с или без Hyper-V.
- Введите в командной строке следующее:
bcdedit /copy {default} /d "No Hypervisor"
- Это говорит:
"The entry was successfully copied to {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}."
- Затем введите следующую команду:
bcdedit /set {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} hypervisorlaunchtype off
- Нажмите клавишу Windows и введите «функции Windows»
- Нажмите комбинацию клавиш Windows + W, чтобы открыть панель «Параметры Windows» на начальном экране.
- Нажмите, чтобы включить или отключить функции Windows
- Когда появится диалоговое окно «Включить или отключить функции Windows», найдите Hyper-V и отмените его выбор.
- Нажмите ОК
- Перезагрузите компьютер при появлении запроса
- Установите VMware Workstation
- Снова включите Hyper-V через диалоговое окно «Включение и выключение функций Windows».
- Перезагрузите компьютер
Для Windows 10:
- Нажмите клавишу Windows
- Тип "Включение или отключение функций Windows"
- Снимите флажок рядом с Hyper-V
- Выберите ОК
- Выберите Перезагрузить сейчас
Вы можете использовать Hyper-V Switch, который в основном использует метод bcdedit, уже описанный здесь, но поверх него помещается простой графический интерфейс одним щелчком мыши. Он показывает текущее состояние конфигурации и позволяет включать или отключать Hyper-V, а также перезагружает компьютер. Я сделал этот маленький инструмент, и он работает на моем компьютере с Windows 10.
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
- 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
- Редактирование данных конфигурации начальной загрузки (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
Я сделал скрипт 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`