Come disabilitare Hyper-V nella riga di comando?


106

Sto provando ad aprire VMware, dice che il lettore VMware e Hyper-V non sono compatibili. L'ho trovato qui , ma non funziona utilizzando il comando che offre.

Ho provato a vedere l'aiuto, ho scoperto che c'è /hypervisorsettingsun'opzione lì. Ma ancora non funziona, dice The parameter is incorrect.

Qualcuno può aiutare con questo?


5
Ho trovato un modo di lavorare qui: dism.exe /Online /Disable-Feature:Microsoft-Hyper-Ve dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All, ma ancora non so come bcdeditfunziona.
Sky

Risposte:


240

In un prompt dei comandi con privilegi elevati scrivi questo:

Disabilitare:

bcdedit /set hypervisorlaunchtype off

Abilitare:

bcdedit /set hypervisorlaunchtype auto 

(Dai commenti: riavvia per avere effetto)


Ho persino dimenticato questa domanda. In realtà l'ho usato allora, ma non ha funzionato. Comunque, ora funziona. Grazie.
Sky

5
Nel caso in cui non hai specificamente bisogno di una soluzione da riga di comando ma piuttosto solo qualcosa di veramente semplice e veloce, potresti usare il mio strumento Hyper-V Switch che utilizza internamente il metodo bcdedit e mette una GUI con un clic su di esso. Funziona sul mio computer Windows 10.
ygoe

1
Assicurati di riavviare il computer dopo aver modificato questa impostazione
justderb

2
@LukeSkCzEnDeRuPl Probabilmente dovresti modificare la tua risposta e menzionare che devi riavviare dopo il comando.
ChrisB

Sono andato avanti e ho modificato la risposta aggiungendo una frase alla fine in cui si dice che è necessario un riavvio.
Dan Nissenbaum

31

Questo comando funziona

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

Eseguilo, quindi accetta di riavviare il computer quando richiesto.

L'ho eseguito con autorizzazioni elevate PowerShell su Windows 10, ma dovrebbe funzionare anche su Win 8 o 7.


1
C'è un modo per ottenere questo risultato senza un riavvio?
rustyx

E che dire della riattivazione di Hyper-V tramite cmd? Grazie!
statosdotcom

2
Questo comando rimuove completamente la funzionalità HyperV con i suoi file e programmi. Il comando bcdedit è meglio disabilitarlo ed eseguire VirtualBox o VMware al posto di esso.

La mia installazione di Hyper-V ha deciso di rinunciare a me senza motivo (sto eseguendo Windows 10 Pro v1703 build 15063.786). Ho provato a (disinstallare / re) installarlo tramite il menu Funzionalità di Windows, Powershell e DISM. Tutti non hanno dato errori, ma non appena provo a creare / aggiungere una nuova VM e voglio completare l'ultimo passaggio, Hyper-V genera un errore che non può aprire / accedere a qualcosa perché un oggetto non sembra exist (schermata olandese): i.imgur.com/07hem57.png Stessa storia quando lo si esegue con privilegi elevati / amministratore. Apparentemente non è possibile ripristinare / riparare completamente il prodotto / i moduli Hyper-V ...
script'n'code

30

Puoi avere una configurazione di Windows 10 con e senza Hyper-V come segue in un prompt dell'amministratore:

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

trova il nuovo id del bootentry "Windows 10 no Hyper-V" appena creato, es. {094a0b01-3350-11e7-99e1-bc5ec82bc470}

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

Dopo il riavvio puoi scegliere tra Windows 10 con e senza Hyper-V all'avvio


1
Per trovare il nuovo ID, digitare "bcdedit" e quindi cercare l'identificatore {XXX} nella configurazione del boot loader aggiunta.
user797717

Aiuto !!!!!!! In questo modo il mio pc non si avvia più ... rimango nella schermata di benvenuto di windows 10 tutta la notte ???!?!?
Falco

hai sostituito l'id nel mio esempio?
hfmanson

2
Se esegui questo comando su PowerShell, assicurati di inserire {current}e {GUID}tra " "come:"{current}"
Nicke Manarin

15

Riga di comando:

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

Se qualcuno sta ottenendo:

Non è stato possibile completare gli aggiornamenti, annullamento delle modifiche

dopo aver provato a disabilitare Hyper-V, prova a disinstallare gli adattatori di rete virtuale Hyper-V da Gestione dispositivi-> Schede di rete


Ciò causa il fallimento dell'aggiornamento di Windows, grazie per le informazioni
Benny

5

Apri un prompt dei comandi come amministratore ed esegui questo comando:

bcdedit /set {current} hypervisorlaunchtype off

Dopo un riavvio, Hyper-V è ancora installato ma Hypervisor non è più in esecuzione. Ora puoi utilizzare VMware senza problemi.

Se hai bisogno di nuovo di Hyper-V, apri un prompt dei comandi come amministratore ed esegui questo comando:

bcdedit /set {current} hypervisorlaunchtype auto

C'è qualche differenza / vantaggio nell'usare bcdedit /set {current} ...over bcdedit /set ...?
mwfearnley il

3

Apri il prompt dei comandi come amministratore e scrivi:

bcdedit /set hypervisorlaunchtype off

2

L'OP ha avuto la risposta migliore per me e sembra che anche altri abbiano capito l'aggiunta -All. Ho impostato due file batch, quindi collegamenti a quelli in modo da poter impostare le autorizzazioni Esegui come amministratore su di essi, facile.

Lotto

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

Batch On

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

Fare clic con il pulsante destro del mouse -> creare collegamento sul desktop. Fare clic con il tasto destro del mouse sul collegamento -> proprietà -> nella scheda del collegamento -> Avanzate -> Esegui come amministratore


0

puoi usare il mio script. incolla le righe di codice nel blocco note e salva come vbs (ad esempio 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
Normalmente, si dovrebbe tentare di spiegare cosa fa / come funziona uno snippet di codice quando si risponde a una domanda.
Sebastian Lenartowicz

1
@SebastianLenartowicz mi sembra autoesplicativo. Lo script imposterà semplicemente hypervisorlaunchtype su auto o off ed esporterà anche le impostazioni correnti tramite il comando bcdedit.
user797717
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.