Jak wyłączyć Hyper-V w linii poleceń?

106

Próbuję otworzyć VMware, mówi, że odtwarzacz VMware i Hyper-V nie są kompatybilne. Znalazłem go tutaj , ale nie działa przy użyciu polecenia, które oferuje.

Próbowałem zobaczyć pomoc, stwierdziłem, że jest tam /hypervisorsettingsopcja. Ale nadal z tym nie pracuję, mówi The parameter is incorrect.

Czy ktoś może w tym pomóc?

Niebo
źródło
5
Znalazłem tutaj sposób pracy: dism.exe /Online /Disable-Feature:Microsoft-Hyper-Vi dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All, ale nadal nie wiem, jak bcdeditdziała.
Sky

Odpowiedzi:

240

W podwyższonym wierszu polecenia napisz to:

Wyłączyć:

bcdedit /set hypervisorlaunchtype off

Umożliwić:

bcdedit /set hypervisorlaunchtype auto 

(Z komentarzy - uruchom ponownie, aby odniosły skutek)

LukeSkCzEnDeRuPl
źródło
Zapomniałem nawet o tym pytaniu. Właściwie to używałem wtedy, ale to nie zadziałało. Tak czy inaczej, teraz działa. Dzięki.
Sky
5
W przypadku, gdy nie potrzebujesz konkretnie rozwiązania wiersza poleceń, a raczej czegoś naprawdę prostego i szybkiego, możesz użyć mojego narzędzia Hyper-V Switch, które wewnętrznie używa metody bcdedit i umieszcza na nim GUI jednym kliknięciem. Działa na moim komputerze z systemem Windows 10.
ygoe
1
Pamiętaj, aby ponownie uruchomić komputer po zmianie tego ustawienia
justderb
2
@LukeSkCzEnDeRuPl Prawdopodobnie powinieneś zmienić swoją odpowiedź i wspomnieć, że po poleceniu musisz ponownie uruchomić komputer.
ChrisB
Po prostu poszedłem dalej i zredagowałem odpowiedź, dodając zdanie na końcu, wspominając, że konieczne jest ponowne uruchomienie.
Dan Nissenbaum
31

To polecenie działa

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

Uruchom go, a następnie zaakceptuj ponowne uruchomienie komputera po wyświetleniu monitu.

Uruchomiłem go z podwyższonymi uprawnieniami PowerShell na Windows 10, ale powinien również działać na Win 8 lub 7.

DivineOps
źródło
1
Czy jest jakiś sposób, aby to osiągnąć bez ponownego uruchamiania?
rustyx
A co z ponownym włączeniem Hyper-V przez cmd? Dziękuję Ci!
statosdotcom
2
To polecenie całkowicie usuwa funkcję HyperV z jego plikami i programami. Polecenie bcdedit najlepiej je wyłączyć i zamiast tego uruchomić VirtualBox lub VMware.
Moja instalacja Hyper-V zdecydowała się zrezygnować ze mnie bez powodu (używam systemu Windows 10 Pro v1703 kompilacja 15063.786). Próbowałem (odinstalować / ponownie) zainstalować go za pomocą menu Funkcje systemu Windows, Powershell i DISM. Wszystkie nie dały żadnego błędu, ale gdy tylko próbuję utworzyć / dodać nową maszynę wirtualną i chcę zakończyć ostatni krok, Hyper-V wyświetla błąd, że nie może otworzyć / uzyskać dostępu do czegoś, ponieważ obiekt nie wygląda na istniej (holenderski zrzut ekranu): i.imgur.com/07hem57.png Ta sama historia, gdy uruchamiasz go z podwyższonymi uprawnieniami / administratora. Najwyraźniej nie jest możliwe pełne przywrócenie / naprawienie produktu / modułów Hyper-V ...
script'n'code
30

Możesz mieć konfigurację Windows 10 zi bez Hyper-V w następujący sposób w monicie administratora:

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

znajdź nowy identyfikator właśnie utworzonego bootentry „Windows 10 bez Hyper-V”, np. {094a0b01-3350-11e7-99e1-bc5ec82bc470}

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

Po ponownym uruchomieniu możesz wybrać system Windows 10 z funkcją Hyper-V lub bez niej podczas uruchamiania

hfmanson
źródło
1
Aby znaleźć nowy identyfikator, wpisz „bcdedit”, a następnie poszukaj identyfikatora {XXX} w dodanej konfiguracji programu ładującego.
user797717
Wsparcie !!!!!!! W ten sposób mój komputer już się nie uruchamia… pozostaje na ekranie powitalnym systemu Windows 10 przez całą noc ???!?!?
Falco
czy podmieniłeś identyfikator w moim przykładzie?
hfmanson
2
Jeśli uruchomisz to polecenie w PowerShell, pamiętaj, aby wstawić {current}i {GUID}między " ":"{current}"
Nicke Manarin
15

Wiersz poleceń:

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

Jeśli ktoś dostaje:

Nie mogliśmy dokończyć aktualizacji, cofam zmiany

po próbie wyłączenia funkcji Hyper-V spróbuj odinstalować wirtualne karty sieciowe Hyper-V z poziomu Menedżera urządzeń-> Karty sieciowe

Ignas Vyšnia
źródło
Powoduje to niepowodzenie aktualizacji systemu Windows, dzięki za informacje
Benny
5

Otwórz wiersz polecenia jako administrator i uruchom to polecenie:

bcdedit /set {current} hypervisorlaunchtype off

Po ponownym uruchomieniu Hyper-V jest nadal zainstalowany, ale Hypervisor nie działa. Teraz możesz używać VMware bez żadnych problemów.

Jeśli potrzebujesz ponownie Hyper-V, otwórz wiersz polecenia jako administrator i uruchom to polecenie:

bcdedit /set {current} hypervisorlaunchtype auto
Iasmini Gomes
źródło
Czy jest jakaś różnica / korzyść w używaniu bcdedit /set {current} ... ponad bcdedit /set ...?
mwfearnley
3

Otwórz wiersz polecenia jako administrator i napisz:

bcdedit /set hypervisorlaunchtype off
Fodor Codrut
źródło
2

OP miał dla mnie najlepszą odpowiedź i wygląda na to, że inni też zorientowali się w dodatku -Wszystkie. Skonfigurowałem dwa pliki wsadowe, a następnie skróty do nich, abyś mógł ustawić dla nich uprawnienia Uruchom jako administrator, łatwo.

Batch Off

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

Batch On

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

Kliknij prawym przyciskiem myszy -> utwórz skrót na pulpicie. Kliknij prawym przyciskiem myszy skrót -> właściwości -> pod zakładką skrótu -> Zaawansowane -> Uruchom jako administrator

Bob Phrapples
źródło
0

możesz użyć mojego skryptu. wklej linie kodu do notatnika i zapisz jako vbs (na przykład 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
teknokadim
źródło
2
Zwykle należy spróbować wyjaśnić, co robi fragment kodu / jak działa, odpowiadając na pytanie.
Sebastian Lenartowicz
1
@SebastianLenartowicz wydaje mi się oczywista. Skrypt po prostu ustawi hypervisorlaunchtype na auto lub off, a także wyeksportuje bieżące ustawienia za pomocą polecenia bcdedit.
user797717