我试图打开VMware,它说VMware播放器和Hyper-V不兼容。我发现它here,但是它没有使用它提供的命令。
我试图看到帮助,发现那里有/hypervisorsettings
选项。但仍然无法使用它,它说The parameter is incorrect
。
任何人都可以帮忙吗?
答案 0 :(得分:161)
在提升命令提示符中写下:
要禁用:
bcdedit /set hypervisorlaunchtype off
启用:
bcdedit /set hypervisorlaunchtype auto
(来自评论 - 重新启动才能生效)
答案 1 :(得分:26)
此命令有效
Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All
运行它然后同意在出现提示时重新启动计算机。
我在Windows 10上以提升权限PowerShell运行它,但它也可以在Win 8或7上运行。
答案 2 :(得分:12)
命令行:
dism /online /disable-feature /featurename:microsoft-hyper-v-all
如果有人得到:
我们无法完成更新,撤消更改
尝试禁用Hyper-V后,尝试从“设备管理器” - >“网络适配器”卸载Hyper-V虚拟网络适配器
答案 3 :(得分:3)
以管理员身份打开命令提示符并运行以下命令:
bcdedit /set {current} hypervisorlaunchtype off
重新启动后,仍然安装了Hyper-V,但Hypervisor不再运行。现在您可以毫无问题地使用VMware。
如果您再次需要Hyper-V,请以管理员身份打开命令提示符并运行以下命令:
bcdedit /set {current} hypervisorlaunchtype auto
答案 4 :(得分:3)
以管理员身份打开命令提示符并编写:
bcdedit /set hypervisorlaunchtype off
答案 5 :(得分:1)
你可以使用我的脚本。 将代码行粘贴到记事本并保存为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
答案 6 :(得分:1)
OP对我来说是最好的答案,看来其他人也弄清楚了-All加法。我设置了两个批处理文件,然后设置了这些文件的快捷方式,以便您可以轻松设置它们的“运行方式管理员”权限。
批量生产
Call dism.exe /Online /Disable-Feature:Microsoft-Hyper-V-All
批处理
Call dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All
右键单击->创建桌面快捷方式。 右键单击快捷方式->属性->快捷方式标签下的->高级->以管理员身份运行
答案 7 :(得分:0)
我尝试了所有堆栈溢出,但都没有起作用。但这对我有用:
答案 8 :(得分:0)
这不是对 OP 问题的直接回答,但是如果您已尝试所有命令并且 Hyper-V 显示为已禁用,但仍然无法启动虚拟化软件,例如 VirtualBox 或 VMWare 和碰巧你在你的机器上启用了 WSL2
以下解决方案可能对您有用。
转到Control Panel
> Programs & Features
> Turn Windows Feature On/OFF
这里有一个问题,以下所有三个都应该被禁用/取消选中。
重启!