怎么设置内核隔离

系统问题

内核隔离这个开关,找起来其实不费劲,麻烦全在打开之后。有人点完开关重启,看到一句“内存完整性已关闭”就懵了;也有人发现那个开关是灰的,鼠标戳半天没反应。我在自己的台式机上亲自踩过坑,索性把这条路上的几个岔口一次说清楚。

先弄明白里面这两个开关各管什么

Windows 安全中心 → 设备安全性 → 内核隔离,展开之后能看到两项。它们不是同一件事,别混着看。

  • 内存完整性:专业名叫 HVCI(Hypervisor-protected Code Integrity,由虚拟机监控程序保护的代码完整性)。它把内核态的代码校验搬到虚拟化层里跑,即便有恶意驱动想往内核塞代码,也会被这一层拦下。
  • 内核模式硬件强制堆栈保护:靠 CPU 的 CET(控制流强制技术,专门防返回地址被篡改的硬件机制)实现,只对编译时启用了该保护的程序生效。
功能 防护目标 硬件前提 开启后的实际影响
内存完整性 内核态代码注入、恶意驱动 CPU 支持 VT-x 或 AMD-V 有少量性能开销,部分老驱动直接失效
硬件强制堆栈保护 栈上返回地址被改写 CPU 支持 CET 不兼容的旧程序可能启动即崩溃

大多数人说的“设置内核隔离”,指的其实是开第一项。下面的步骤也都围绕内存完整性来。

开之前先确认虚拟化是打开的

内存完整性依赖虚拟化,硬件层面没开,软件开关按了也白按。最快的确认方式是任务管理器:切到“性能”选项卡,点左侧的 CPU,右下角有一行“虚拟化”,后面写着“已启用”就没问题。

任务管理器“性能”选项卡页面

如果这里显示“已禁用”,需要重启进 BIOS 打开。Intel 平台一般叫 Intel Virtualization Technology 或 VT-x,AMD 平台叫 SVM Mode 或 AMD-V,位置多在 Advanced → CPU Configuration 下面。各家主板菜单措辞不太一样,找不到就翻 CPU 相关的子项。

正式开启的操作路径

  1. 按 Win + S 搜索“Windows 安全中心”并打开
  2. 点左侧的“设备安全性”
  3. 找到“内核隔离”一栏,点右侧的“内核隔离详细信息”
  4. 把“内存完整性”的开关拨到开
  5. 重启电脑,设置才会真正落地

家庭版也有这个入口,不必去找什么专业版专属功能。整个内核隔离的设置流程就这五步,难点全部在后面。

开关是灰的,鼠标点不动

这种情况挺常见的,原因通常是下面几类:

  • 虚拟化在 BIOS 里没打开,系统直接把开关锁死
  • 当前账户不是管理员,安全中心不给你改
  • 公司统一管控的电脑,组策略把这一项固定住了
  • 第三方安全软件接管了设备安全性相关设置

先看页面上有没有“查看不兼容的驱动程序”这个链接,有的话点进去,问题基本就暴露了。再看看是不是管理员账户,普通账户开不了这个开关。

如果前两项都排除了,查注册表:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity,把里面的 Enabled 改成 1,重启。组策略路径是计算机配置 → 管理模板 → 系统 → Device Guard → 打开基于虚拟化的安全,把它设为“未配置”或“已启用”再试。

重启后弹出“内存完整性已关闭”

这是最常见的分支。系统能识别到有驱动不兼容,于是自己把保护关了,还弹个通知。点开通知,它会点名具体是哪个 .sys 文件拦路。多半是老声卡驱动、老网卡驱动、安卓模拟器自带的驱动、某些游戏反作弊组件,或者国产安全软件的底层模块。

处理思路不复杂:记下文件名,到设备管理器里勾上“查看 → 显示隐藏的设备”,逐个比对可疑设备;能找到对应软件的,去官网更新驱动,或者干脆卸载那个软件;卸完再回来重新打开内存完整性,重启验证。

讲真,别直接钻进 C:\Windows\System32\drivers 硬删文件。删错一个系统盘可能就进不去了。想先摸清底细,用管理员命令行跑 pnputil /enum-drivers,能把第三方驱动列表列出来。

开完之后游戏掉帧、模拟器打不开

开启内存完整性等于让系统常驻一层虚拟化,帧数掉几个百分点属于正常范围内的代价,多数人察觉不到。真正难受的是安卓模拟器、VMware、VirtualBox 这类软件,它们要跟 Hyper-V 抢虚拟化层,表现就是启动报错或者卡成幻灯片。

想确认当前状态,管理员命令行执行 bcdedit /enum {current},看 hypervisorlaunchtype 这一项的值。Auto 表示虚拟化层随系统启动,Off 表示不启用。

这里有个取舍要提前想清楚:把内核隔离关掉、或把 hypervisorlaunchtype 设成 Off,WSL2、Windows 沙盒、Docker Desktop 这些依赖 Hyper-V 的功能会跟着失效。为了一个模拟器关掉一整条虚拟化链路,值不值自己掂量。

怎么确认它真的跑起来了

开关拨过去不算数,得看运行时状态。按 Win + R 输入 msinfo32 回车,在“系统摘要”里找“基于虚拟化的安全性”,显示“正在运行”就说明生效了。

更精确的办法是用管理员权限打开 PowerShell,执行:

Get-CimInstance -ClassName Win32_DeviceGuard -Namespace root\Microsoft\Windows\DeviceGuard

看返回结果里的 SecurityServicesRunning 字段,值是 2 代表内存完整性正在运行,值是 0 就是没起来。

想关掉的话原路返回

路径和开启时一样:Windows 安全中心 → 设备安全性 → 内核隔离详细信息 → 把内存完整性开关拨回去。拨完同样要重启,个别机器会提示需要重启两次才彻底关闭,属于正常现象。整个过程里,重启永远是绕不开的最后一步。

操作系统种类多样、版本繁杂,本文内容可能无法完全匹配你的具体环境,不保证完全正确或普遍适用,仅供操作参考。