本帖最后由 supty 于 2024-8-27 11:40 编辑
看到不少朋友最近又遇到这个问题了,所以重新整理下资料。
先弄清楚关系1. CPU虚拟化功能,Intel-VT, AMD-V 近十来年的CPU硬件都支持. 用于辅助提升虚拟机性能的一项技术.
2. PC的BIOS设置里有一个虚拟化开关,默认都是开启的,VBS功能,虚拟机软件都需要它保持开启.
3. Hyper-V(WSL,WSA依赖它), KVM(Linux下用), Vmware,Xen 是虚拟化软件,依赖CPU虚拟化硬件辅助.
Win11 系统默认在硬件满足要求的情况下(注:只验证过12代以上的笔记本和台式机)会自动开启VBS基于虚拟化的安全. 具体是那些先决条件没去做深入研究,相当于把系统自身运行在虚拟化下面,按照微
软说法是用来增强系统安全性的,但开启后,系统自身会有5-10%的性能损失,游戏性能下降会稍明显一
些,但不少依赖CPU硬件虚拟化的虚拟机软件 (vmware,virualbox,安卓虚拟机雷电等) 就无法直接在运行
于虚拟化的系统下再直接去访问CPU虚拟化接口实现功能,无法正常运行或出现性能下降, 而这个VBS也不
是那么容易的被关闭,综合总结后的关闭流程如下
(1) 修改 Windows Bootloader 引导参数关闭
bcdedit /set hypervisorlaunchtype off
用系统PowerShell 管理员方式运行
4.png (72.44 KB, 下载次数: 43)
下载附件
保存到相册
2024-8-25 13:19 上传
注意: 这个步骤是必须执行的,如果关不掉也无妨,后续组策略关闭需要先保证这一步为off状态.
重启后,在开始运行 msinfo32 验证基于虚拟化的安全是否关闭, 如果关不掉继续后面的步骤
1.png (376.64 KB, 下载次数: 29)
下载附件
保存到相册
2024-8-25 13:25 上传
(2)修改注册表相关参数来关闭
开始运行regedit 打开注册表编辑
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceGuard
将值改为 "EnableVirtualizationBasedSecurity"=dword:00000000
注册表关闭方式针对我手里的几台硬件都是无效的,但可以试试看或许有奇迹.
重启后,在开始运行 msinfo32 验证基于虚拟化的安全是否关闭, 如果关不掉继续后面的步骤
(3) 修改Windows 安全中心,设备安全性,内核隔离,关闭内存完整性.
VBS的运行前置条件之一是 内存完整性,关掉它也可以关闭VBS, 但这个内存完整性开关可能和BIOS
里的内存保护相关设置有关,有些PC是灰色的无法关闭或者是不可选状态,能关闭先关闭后重启再运
行 msinfo32 进行检查. 关不掉继续后面步骤.
(4) 修改组策略,将设备保护,基于虚拟化的安全性设置为禁用.
开始运行 gpedit.msc 展开 计算机管理-管理模板-DeviceGuard
找到 打开基于虚拟化的安全设置,将 值直接改为 "已禁用" 重启后在运行msinfo32 验证.
在执行这一步前,务必保证前面第1步 bcdedit 执行过引导参数关闭,否则可能无效.而有些PC硬件平台
下,默认新安装的系统不用执行其它操作,直接通过修改组策略就可以关闭.
2.png (333.74 KB, 下载次数: 27)
下载附件
保存到相册
2024-8-25 13:31 上传
(5) 修改组策略,特殊情况 ( 注:个人手里有一台thinkpad 22款23H2系统通过这个流程才能关闭 )
重启后,如果以上这4步还是关不掉,那么就先改下 下面的子选项。
先把 打开基于虚拟化的安全设置为 ”已启用”,下面的选项改为
平台安全级别改为 安全启动
基于虚拟化的代码完整性保护 已禁用
Credential Guard 配置 已禁用
安全启动配置 已禁用
内核模式硬件强制实施对战保护 已禁用
改完后,确定并进行一次重启操作,用msinfo32 验证状态应该会变成启用但未运行。
再次按照步骤4 直接改为 已禁用,第二次重启 在运行msinfo32 验证会变成未运行.
3.png (467.01 KB, 下载次数: 27)
下载附件
保存到相册
2024-8-25 13:38 上传
上面的步骤都在 24H2预览版 26100.1195 上验证过,针对23H2也是有效的.如果严格按照以上
操作还是无法解决,那我也没办法了,它和不同机型的BIOS设置,硬件都有所关联,而且从
Win11 初版到24H2VBS关闭方法都有些出入,去年查阅很多国内外资料时讨论都是不了了之。