在Windows 8中启用/禁用Hyper-V的便捷方法


76

我真的很喜欢Windows 8中对Hyper-V的支持,但是在某些情况下,我需要禁用Hyper-V才能运行某些即使在虚拟化环境的根分区中也不愿意执行的应用程序。
我目前正在做的是从“添加或删除Windows功能”对话框中完全禁用该功能,然后重新启动,并在需要时再次启用它。
我想知道是否有更好的方法可以想到,它甚至可以是快捷方式,我可以双击它并为我添加或删除该功能并重新启动(我想这可能是可行的。 PowerShell脚本)。


您使用的方法是最好且唯一受支持的方法。
Ramhound

1
@Ramhound您可以使用dism.exe从命令行启用功能。例如,这就是我们在Windows 8上自动安装.NET 3.5的方式。从理论上讲,您也可以通过这种方式禁用功能,但是我还没有尝试过。
Mark Allen

Answers:


66

免责声明:我尚未完成删除功能的操作,作为最后的告诫,每次您再次启用它时,可能都会安装大量Windows Update更新。

话虽如此,在提升的命令提示符下:

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

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

这是在已启用并正在运行Hyper-V的PC上运行enable命令的样子:

> dism /在线/启用功能:Microsoft-Hyper-V /全部

部署映像服务和管理工具版本:6.2.9200.16384

图像版本:6.2.9200.16384

启用功能[========================== 100.0%================ ==========]操作成功完成。

由于是Hyper-V而启用该功能时,它可能会要求您重新启动并再次运行该命令。似乎有些陌生。换句话说,您可能不得不重新启动两次。但是也许它不会对您有用,因为该机器之前已经启用了Hyper-V。


谢谢!,它就像一种魅力。它确实重启了两次,但我认为没有其他方法可以解决。同样,可以说,与转到Windows功能屏幕相比,它并没有太大的改进,但是一旦放在桌面或固定在启动屏幕上,它肯定适合像我这样的懒惰人。
Fredy Treboux

当然!我很高兴它奏效。是的,通常命令行内容最初是用来设置计算机的,因此,如果您需要安装.NET 3.5,Hyper-V和一堆其他内容,则可以完全自动进行。
Mark Allen

1
您可能想/NoRestart在非交互式设置中使用(从脚本调用时)。
krlmlr

下面的答案bcdedit是更快的方法,并且是唯一必要的操作(无论如何,您仍然必须重新启动)。这就是我需要切换到VMWare时所做的事情。
user276648 '17

@ user276648假定已安装Hyper-V,然后确定。我只发布了我知道的答案。
Mark Allen

82

这是一个古老的答案,但出于完整性考虑,因为我知道有比最佳结果更好的方法。

在提升的命令提示符下:

bcdedit /set hypervisorlaunchtype off

禁用管理程序,并:

bcdedit /set hypervisorlaunchtype auto

重新启用它(默认值)。

当然,它仍然需要重新启动。


1
如果您在Microsoft Surface Pro 3上开发Windows Phone应用(这是您需要的Hyper-v),但是希望在不积极开发的情况下连接待机能够正常工作(从2014年底开始,连接待机将在运行管理程序时不受支持)。
克里斯

我刚刚来这里只是为了发布更新,再次寻找以上命令(以临时运行VM Ware Player)-Windows 10在Tech Preview中同时支持Hyper-V和Connected Standby,我只能假定会保留该功能到RTM。到目前为止,在Surface Pro 3上的预览中似乎运行良好。
丹·哈里斯

这使我免于太多挫败感。Hyper-V不喜欢我的视频驱动程序,而Dell已阻止了该驱动程序的更新,因此我无法使用英特尔的更新驱动程序。如果我不想运行多台显示器,则必须禁用Hyper-V。
Ed Charbeneau

10

您可以创建两个启动项,因此可以选择决定使用或不使用Hyper-V来启动OS系统。

  1. 在命令提示符下键入以下内容:
bcdedit /copy {default} /d "No Hypervisor"
  1. 它说:
"The entry was successfully copied to {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}."
  1. 然后键入以下命令:
bcdedit /set {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} hypervisorlaunchtype off

我现在已经看到了,看起来不错!但是还没有时间自己尝试一下。
Fredy Treboux 2015年

3
请注意:如果在Windows 10上,则必须使用{current}。只需运行bcdedit进行检查。另外,对于任何尝试过它的人,它都不希望在PowerShell中工作。
dotbat

1
在PowerShell中,您需要对ID使用引号。例如:bcdedit /set "{current}" hypervisorlaunchtype off
kishkin '18年

我认为,这是迄今为止最优雅的答案。另一个提示是,您可以Shift在单击时按住该键Start -> Power button -> Restart,这将使您能够选择在计算机重新启动之前是否启用Hyper-V进行引导。当在BIOS中启用某种形式的“ fastboot”并且在Windows bootloader接管控制权之前几乎无法敲击“ enter BIOS”键时,此功能特别有用。
本·约翰逊

迄今为止最好的答案
Tien Dinh

8
  • 按下Windows键,然后输入“ Windows功能”
  • 按下Windows键+ W组合键以弹出“开始”屏幕的“ Windows设置”面板。
  • 单击打开或关闭Windows功能
  • 出现“打开或关闭Windows功能”对话框时,查找Hyper-V并取消选择它
  • 点击确定
  • 出现提示时重新启动计算机
  • 安装VMware Workstation
  • 通过“打开或关闭Windows功能”对话框再次启用Hyper-V
  • 重启你的电脑

对于Windows 10:

  • 按Windows键
  • 键入“打开或关闭Windows功能”
  • 取消选择Hyper-V旁边的复选框
  • 选择确定
  • 选择立即重启

我在w8.1中安装了vs2013,显然它安装了hyper v,导致我的vbox无法正常工作。感谢您的永久性答复。
MvcCmsJon

4

Powershell也可以使用包装为PS cmdlet的DISM,并且可以在进行更改之前先读取设置。

//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

参考

  1. 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/zh-cn/library/hh852173.aspx
  2. 根据http://technet.microsoft.com/zh-cn/library/cc709667%28v=ws.10%29.aspx 和其他Doc http,Boot Entry Config数据编辑(BECD)也可以读取(/导出)设置。 ://msdn.microsoft.com/zh-CN/library/windows/hardware/ff542202%28v=vs.85%29.aspx

3

您可以使用Hyper-V交换机,该交换机基本上采用此处已经描述的bcdedit方法,但是在其上放置了一个简单的一键式GUI。它显示您当前的配置状态,并允许您启用或禁用Hyper-V并重新引导计算机。我已经制作了这个小工具,并且可以在Windows 10计算机上使用。


1

我制作了一个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开”目标:

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe C:\Scripts\SetHyper-V.ps1 -state Auto`

0
  1. 从具有管理员权限的Windows控制台(cmd):

清理和整理Windows组件存储(WinSxS)

Dism /Online /Cleanup-Image /RestoreHealth
Dism.exe /online /Cleanup-Image /StartComponentCleanup

分析系统文件并根据需要还原

sfc /scannow

(根据https://ugetfix.com/ask/how-to-disable-hyper-v-in-windows-10/

  1. 在启动配置时关闭虚拟机监控程序自动启动
bcdedit /set {current} hypervisorlaunchtype off

(来源:https//blogs.technet.microsoft.com/gmarchetti/2008/12/07/turning-hyper-v-on-and-off/

  1. Windows PowerShell(具有管理特权):
Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All

(来源:https : //ugetfix.com/ask/how-to-disable-hyper-v-in-windows-10/https://support.microsoft.com/en-us/help/3204980/virtualization-应用程序无法与超级v设备一起工作g

  1. 开启或关闭Windows功能-> Hyper-V全部取消

https://support.microsoft.com/zh-cn/help/3204980/virtualization-applications-do-not-work-together-with-hyper-v-device-g

  1. 此PC,属性,设备管理器,系统设备,并在那里删除Hyper-V。

为了完整起见,某些虚拟化问题与Device Guard和Credential Guard安全功能有关:

  1. mmc.exe,在“计算机配置” /“管理模板” /“系统” /“设备保护” /“基于虚拟化的安全性”下添加管理单元本地计算机策略

  2. 设置/更新和安全性/ Windows安全性/设备安全性/核心隔离中的核心隔离

(参考:https//support.microsoft.com/zh-cn/help/3204980/virtualization-applications-do-not-work-together-with-hyper-v-device-g

https://www.tenforums.com/tutorials/68913-enable-disable-device-guard-windows-10-a.html ; https://blogs.technet.microsoft.com/ash/2016/03/02/windows-10-device-guard-and-credential-guard-demystified/

https://weblogs.asp.net/dixin/run-hyper-v-and-vmware-virtual-machines-on-windows-10

https://www.dell.com/support/article/lu/fr/lubsd1/sln304974/windows-10-enterprise-security-credential-guard-and-device-guard?lang=en ...)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.