必须显式开启嵌套虚拟化才能在Hyper-V虚拟机内运行雷电模拟器、Docker Desktop等依赖硬件虚拟化的软件;需关闭目标虚拟机后通过PowerShell执行Set-VMProcessor命令启用ExposeVirtualizationExtensions,并在客户机中验证“虚拟化:已启用”。

如果您已在Windows 11中成功启用Hyper-V,但需要在已运行的虚拟机内部再运行支持硬件虚拟化的软件(例如雷电模拟器、Docker Desktop或另一台Hyper-V虚拟机),则必须显式开启嵌套虚拟化功能。该功能默认处于关闭状态,需通过PowerShell对指定虚拟机单独配置。以下是开启此功能的具体步骤:
一、确认宿主机与虚拟机前提条件
嵌套虚拟化依赖于宿主机CPU支持并已启用二级地址转换(SLAT)技术,且目标虚拟机必须处于关闭状态,否则无法修改处理器虚拟化扩展设置。同时,宿主机Hyper-V本身必须已启用并正常运行。
1、以管理员身份打开Windows Terminal或PowerShell。
2、执行命令 Get-VM 查看当前所有虚拟机列表及运行状态。
3、确认目标虚拟机(如名为“Win10_Qt6_Python”)当前状态为 Off;若为“Running”,请先执行 Stop-VM -Name "虚拟机名称" 关闭它。
4、执行命令 Get-VMProcessor -VMName "虚拟机名称" 检查当前嵌套虚拟化状态,输出中 ExposeVirtualizationExtensions 属性值应为 False。
二、使用PowerShell启用嵌套虚拟化
该操作通过修改虚拟机处理器配置,将CPU的虚拟化扩展暴露给客户操作系统,使其能识别并调用底层虚拟化指令集,从而支持内嵌的虚拟机监控程序(如Android模拟器的Hypervisor、WSL2内核等)。
1、确保虚拟机已完全关闭(状态为Off)。
2、在管理员PowerShell中输入以下命令并回车:Set-VMProcessor -VMName "虚拟机名称" -ExposeVirtualizationExtensions $true。
3、执行后无错误提示即表示配置成功;可再次运行 Get-VMProcessor -VMName "虚拟机名称" | fl 验证 ExposeVirtualizationExtensions 是否已变为 True。
4、启动该虚拟机:Start-VM -Name "虚拟机名称"。
三、验证嵌套虚拟化是否生效
进入已开启嵌套虚拟化的虚拟机操作系统后,需在客户机内部确认虚拟化能力是否被正确识别。对于Windows客户机,可通过任务管理器或PowerShell进一步验证。
1、在目标虚拟机内按下 Ctrl + Shift + Esc 打开任务管理器。
2、切换至“性能”选项卡,点击左侧“CPU”,观察右下角是否显示 虚拟化:已启用。
3、若未显示,可在客户机中以管理员身份运行PowerShell,执行:systeminfo | findstr "Hyper-V Requirements",检查输出中是否包含 Virtualization Enabled In Firmware: Yes 和 Second Level Address Translation: Yes。
四、禁用嵌套虚拟化的PowerShell命令
当不再需要嵌套虚拟化,或需与其他虚拟化软件(如VMware Workstation)共存时,可反向关闭该功能,避免潜在兼容性问题或性能干扰。
1、确保目标虚拟机处于关闭状态。
2、在宿主机管理员PowerShell中执行:Set-VMProcessor -VMName "虚拟机名称" -ExposeVirtualizationExtensions $false。
3、启动虚拟机后,在客户机内重复步骤三中的验证操作,确认“虚拟化:已启用”信息消失或 systeminfo 输出中对应项变为 No。










