Как отключить Hyper-V в командной строке?

106

Пытаюсь открыть VMware, пишет, что VMware player и Hyper-V несовместимы. Я нашел его здесь , но он не работает при использовании предлагаемой команды.

Я попытался увидеть справку, обнаружил, что там есть /hypervisorsettingsопция. Но все равно с этим не работать, говорит он The parameter is incorrect.

Может кто-нибудь помочь с этим?

Небо
источник
5
Я нашел здесь рабочий способ: dism.exe /Online /Disable-Feature:Microsoft-Hyper-Vи dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All, но до сих пор не знаю, как он bcdeditработает.
Sky

Ответы:

241

В командной строке с повышенными привилегиями напишите следующее:

Отключить:

bcdedit /set hypervisorlaunchtype off

Включить:

bcdedit /set hypervisorlaunchtype auto 

(Из комментариев - перезагрузка вступит в силу)

LukeSkCzEnDeRuPl
источник
Я даже забыл этот вопрос. Я действительно использовал это тогда, но это не сработало. Во всяком случае, теперь это работает. Спасибо.
Sky,
5
Если вам не нужно специально решение для командной строки, а просто что-то действительно простое и быстрое, вы можете использовать мой инструмент Hyper-V Switch, который внутренне использует метод bcdedit и помещает поверх него графический интерфейс одним щелчком мыши. Работает на моем компьютере с Windows 10.
ygoe
1
Не забудьте перезагрузить компьютер после изменения этого параметра
justderb
2
@LukeSkCzEnDeRuPl Вероятно, вам следует отредактировать свой ответ и упомянуть, что вам необходимо перезагрузиться после команды.
ChrisB
Я просто пошел дальше и отредактировал ответ, добавив в конце предложение, в котором говорилось о необходимости перезагрузки.
Дэн Ниссенбаум
31

Эта команда работает

Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All

Запустите его, затем согласитесь перезагрузить компьютер при появлении запроса.

Я запускал его в PowerShell с повышенными разрешениями в Windows 10, но он также должен работать в Win 8 или 7.

DivineOps
источник
1
Есть ли способ добиться этого без перезагрузки?
rustyx 07
А как насчет повторного включения Hyper-V снова через cmd? Спасибо!
statosdotcom 07
2
Эта команда полностью удаляет функцию HyperV с ее файлами и программами. Команду bcdedit лучше всего отключить и вместо нее запустить VirtualBox или VMware.
Моя установка Hyper-V отказалась от меня без всякой причины (я использую Windows 10 Pro v1703 build 15063.786). Я пытался (удалить / повторно) установить его через меню «Функции Windows», Powershell и DISM. Все они не выдали ошибок, но как только я пытаюсь создать / добавить новую виртуальную машину и хочу завершить последний шаг, Hyper-V выдает ошибку, что он не может открыть / получить доступ к чему-либо, потому что объект не отображается Существуют (голландский снимок экрана): i.imgur.com/07hem57.png Та же история при запуске с повышенными правами / правами администратора. По-видимому, невозможно полностью восстановить / отремонтировать продукт / модули Hyper-V ...
script'n'code
30

У вас может быть конфигурация Windows 10 с Hyper-V и без него, как показано в командной строке администратора:

bcdedit /copy {current} /d "Windows 10 no Hyper-V"

найдите новый идентификатор только что созданной загрузки «Windows 10 без Hyper-V», например. {094a0b01-3350-11e7-99e1-bc5ec82bc470}

bcdedit /set {094a0b01-3350-11e7-99e1-bc5ec82bc470} hypervisorlaunchtype Off

После перезагрузки вы можете выбирать между Windows 10 с Hyper-V или без него при запуске.

Hfmanson
источник
1
Чтобы найти новый идентификатор, введите «bcdedit», а затем найдите идентификатор {XXX} в добавленной конфигурации загрузчика.
user797717
Помогите !!!!!!! После этого мой компьютер больше не запускается ... оставаться на экране приветствия Windows 10 всю ночь ???!?!?
Falco
вы заменили id в моем примере?
hfmanson
2
Если вы запускаете эту команду в PowerShell, не забудьте поставить {current}и {GUID}между " "такими, как:"{current}"
Ник
15

Командная строка:

dism /online /disable-feature /featurename:microsoft-hyper-v-all

Если у кого-то появляется:

Не удалось завершить обновления, отмена изменений

после попытки отключить Hyper-V, попробуйте удалить виртуальные сетевые адаптеры Hyper-V в Диспетчере устройств -> Сетевые адаптеры

Игнас Вышня
источник
Это приводит к
Бенни,
5

Откройте командную строку от имени администратора и выполните эту команду:

bcdedit /set {current} hypervisorlaunchtype off

После перезагрузки Hyper-V все еще установлен, но гипервизор больше не работает. Теперь вы можете без проблем пользоваться VMware.

Если вам снова понадобится Hyper-V, откройте командную строку от имени администратора и выполните эту команду:

bcdedit /set {current} hypervisorlaunchtype auto
Ясмини Гомеш
источник
Есть ли разница / преимущество в использовании bcdedit /set {current} ...over bcdedit /set ...?
mwfearnley
3

Откройте командную строку от имени администратора и напишите:

bcdedit /set hypervisorlaunchtype off
Фодор Кодрут
источник
2

У OP был лучший ответ для меня, и, похоже, другие тоже выяснили, что -Все дополнение. Я установил два командных файла, а затем ярлыки для них, чтобы вы могли легко установить для них разрешения «Запуск от имени администратора».

Пакетное отключение

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

Пакетная обработка

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

Щелкните правой кнопкой мыши -> создать ярлык на рабочем столе. Щелкните правой кнопкой мыши ярлык -> свойства -> на вкладке ярлыка -> Дополнительно -> Запуск от имени администратора

Боб Фрапплс
источник
0

вы можете использовать мой сценарий. вставьте строки кода в блокнот и сохраните как vbs (например switch_hypervisor.vbs)

Option Explicit

Dim backupfile
Dim record
Dim myshell
Dim appmyshell
Dim myresult
Dim myline
Dim makeactive
Dim makepassive
Dim reboot
record=""
Set myshell = WScript.CreateObject("WScript.Shell")

If WScript.Arguments.Length = 0 Then
    Set appmyshell  = CreateObject("Shell.Application")
    appmyshell.ShellExecute "wscript.exe", """" & WScript.ScriptFullName & """ RunAsAdministrator", , "runas", 1
    WScript.Quit
End if




Set backupfile = CreateObject("Scripting.FileSystemObject")
If Not (backupfile.FileExists("C:\bcdedit.bak")) Then
    Set myresult = myshell.Exec("cmd /c bcdedit /export c:\bcdedit.bak")
End If

Set myresult = myshell.Exec("cmd /c bcdedit")
Do While Not myresult.StdOut.AtEndOfStream
    myline = myresult.StdOut.ReadLine()

    If myline="The boot configuration data store could not be opened." Then
        record=""
        exit do
    End If
    If Instr(myline, "identifier") > 0 Then
        record=""
        If Instr(myline, "{current}") > 0 Then
            record="current"
        End If
    End If
    If Instr(myline, "hypervisorlaunchtype") > 0 And record = "current" Then
        If Instr(myline, "Auto") > 0 Then
            record="1"
            Exit Do
        End If
        If Instr(myline, "On") > 0 Then
            record="1"
            Exit Do
        End If
        If Instr(myline, "Off") > 0 Then
            record="0"
            Exit Do
        End If
    End If
Loop

If record="1" Then
    makepassive = MsgBox ("Hypervisor status is active, do you want set to passive? ", vbYesNo, "Hypervisor")
    Select Case makepassive
    Case vbYes
        myshell.run "cmd.exe /C  bcdedit /set hypervisorlaunchtype off"
        reboot = MsgBox ("Hypervisor chenged to passive; Computer must reboot. Reboot now? ", vbYesNo, "Hypervisor")
        Select Case reboot
            Case vbYes
                myshell.run "cmd.exe /C  shutdown /r /t 0"
        End Select
    Case vbNo
        MsgBox("Not Changed")
    End Select
End If

If record="0" Then
    makeactive = MsgBox ("Hypervisor status is passive, do you want set active? ", vbYesNo, "Hypervisor")
    Select Case makeactive
    Case vbYes
        myshell.run "cmd.exe /C  bcdedit /set hypervisorlaunchtype auto"
        reboot = MsgBox ("Hypervisor changed to active;  Computer must reboot. Reboot now?", vbYesNo, "Hypervisor")
        Select Case reboot
            Case vbYes
                myshell.run "cmd.exe /C  shutdown /r /t 0"
        End Select
    Case vbNo
        MsgBox("Not Changed")
    End Select
End If

If record="" Then
        MsgBox("Error: record can't find")
End If
Текнокадим
источник
2
Обычно при ответе на вопрос нужно попытаться объяснить, что делает / как работает фрагмент кода.
Себастьян Ленартович
1
@SebastianLenartowicz мне кажется очевидным. Скрипт просто установит для гипервизора Launchtype значение auto или off, а также экспортирует текущие настройки с помощью команды bcdedit.
user797717