Windows11关闭“基于虚拟化的安全性”
在一次嵌套虚拟化的实验里,笔者忽然发现KVM报错。在查询资料并且在VMWare打开了CPU虚拟化之后悲催的发现出现了一个从来没有见过的错误
如果选择否就直接关闭虚拟机了,选择是就会出现这样的错误
查了一下发现是微软的 Hyper-V 与 VMware Workstation 之间是冲突的,需要关闭Hyper-V。本以为是个很简单的事情,结果笔者的主机是非常稀有的体质,折腾了一下午。故记录一下解决这个问题的时候90%的人都没遇到过的情况(悲)。
以下是关闭Hyper-V的步骤,读者可以依次尝试。
关闭Hyper-V
在开始之前,让我们先查看几个关键的设置。
首先是硬件CPU的虚拟化支持,可以按Ctrl+Shift+Esc
打开任务管理器,随后查看性能分组,查看CPU的状态。如图所示CPU虚拟化已启用是正常的,笔者一开始这里就是启用的,所以就没有管,如果未启用请自行搜索资料。
之后是打开计算机 设置->隐私和安全性->Windows安全中心->设备安全性->内核隔离详细信息
,之后将内存完整性关闭,如图所示为正确的配置。也就是这个位置狠狠坑了我一把,先说结论,内存完整性下面的本地机构保护也需要关闭。
Windows功能关闭Hyper-V
打开控制面板->程序->启用或关闭Windows功能
关闭hyper-v,windows虚拟机监控程序以及虚拟机平台。
如果你和笔者一样是家庭版,那你也会看不到hyper-v功能。笔者这里是自己找的安装Hyper-V的脚本,但是其实看不到就不用管了,这里不用担心。
重启后生效,重启后如果还不能正常打开虚拟机就往下继续看。
命令行关闭
1、打开管理员PowerShell。
2、输入bcdedit /set hypervisorlaunchtype off并回车。(若要开启则将off改为auto)
3、查看选项状态。
关闭后记得重启,重启后如果还不能正常打开虚拟机就往下继续看。
服务关闭
进入服务,禁用Hyper-V相关的服务
到这里,笔者还是不能解决,仔细查看系统信息之后发现基于虚拟化的安全性一直都没有被关闭。
很无奈,只能继续寻找关于关闭虚拟化安全的资料。
关闭“基于虚拟化的安全性”
组策略关闭(家庭版无效)
由于笔者是家庭版,无法使用组策略方法(哪怕在家庭版安装组策略也是无效的。专业版Win11也有可能无效。家庭版开了组策略也找不到Device/Credential Guard),所以笔者又选择了注册表方法,但是这里还是将过程记录。
1、Win+R运行——输入gpedit.msc并回车 打开组策略。
2、找到“计算机配置——管理模板——系统——Device Guard”右侧的“打开基于虚拟化的安全”策略,将其修改为“已禁用”
3、查看选项状态。
注册表关闭
1、Win+R运行——输入regedit——回车 打开注册表。
2、找到“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceGuard”目录右侧的"EnableVirtualizationBasedSecurity"(如果存在),将其DWORD值修改为0。
重启生效,重启后如果还不能正常打开虚拟机就往下继续看。
PowerShell脚本关闭
方法四:PowerShell脚本关闭(需要win10系统版本1607以上)
1、下载脚本文件并解压缩。链接:https://www.microsoft.com/en-us/download/details.aspx?id=53337
2、以管理员模式打开命令行——输入set-ExecutionPolicy RemoteSigned并回车——输入Y并回车
3、复制刚刚解压缩的脚本路径。
4、在管理员模式的命令行中输入cd 你的脚本路径(命令行右键粘贴)并回车——输入dir并回车查看当前目录内容是否为脚本目录。
5、输入.\DG_Readiness_Tool_v3.6.ps1 -Disable(注意前面有个点)并回车——等待运行完成后重启电脑,按照提示关闭Credential Guard和Device Guard(按照F3-Enter-F3-Enter来进行输入)。
按道理来说进行到这一步基本上就解决了,但是我的电脑死活关不上这个虚拟化安全,我找遍了资料都没有,最后在一篇关闭Hyper-V的文章中发现还要在设置里将本地机构保护关闭(浪费了我一下午,真的悲伤)。
好了,到这里本文就差不多结束了。如果还没有解决的话读者不妨试试下载一个雷电模拟器,打开之后雷电模拟器会提示你的系统打开了虚拟化,点重启修复就试试(真的有用且方便)。