启用内存完整性
发布时间:2026-08-25 | 浏览:1
访问此页面需要授权。 可以尝试 登录 或 更改目录 。
访问此页面需要授权。 可以尝试 更改目录 。
适用于: ✅ Windows 11 , ✅ Windows 10 , ✅ Windows Server 2022 , ✅ Windows Server 2019 , ✅ Windows Server 2016
某些应用程序和硬件设备驱动程序可能与内存完整性不兼容。 这种不兼容性可能导致设备或软件故障,在极少数情况下,可能会导致启动失败 (蓝屏) 。 此类问题可能会在启用内存完整性之后或启用过程期间出现。 如果发生兼容性问题,请参阅 故障排除以 了解修正步骤。
内存完整性 是 Windows 中提供的基于虚拟化 (VBS) 功能。 内存完整性和 VBS 改进了 Windows 的威胁模型,并针对试图利用 Windows 内核的恶意软件提供更强的保护。 VBS 使用 Windows 虚拟机监控程序创建一个隔离的虚拟环境,该环境将成为假定内核可能受到威胁的操作系统的信任根。 内存完整性是一个关键组件,它通过在 VBS 的独立虚拟环境中运行内核模式代码完整性来保护和强化 Windows。 内存完整性还限制可能危及系统的内核内存分配。
内存完整性有时称为受虚拟机 监控程序保护的代码完整性 (HVCI) 或 虚拟机监控程序强制执行的代码完整性 ,最初作为 Device Guard 的一部分发布。 不再使用 Device Guard,除了用于在组策略或 Windows 注册表中查找内存完整性和 VBS 设置。
内存完整性更适用于具有基于 模式的执行控制 的 Intel Kabylake 和更高版本处理器,以及具有 来宾模式执行陷阱 功能的 AMD Zen 2 和更高版本处理器。 较旧的处理器依赖于这些功能的仿真(称为 受限用户模式 ),并且会对性能产生更大的影响。 启用嵌套虚拟化后,当 VM 版本 >= 9.3 时,内存完整性效果更好。
在选择了“ 使用 DMA 安全启动” 时,Azure VM 不支持内存完整性。 如果选中此选项,VBS 将显示为已启用,但未运行。 因此,请确保仅使用以下方法之一选择 安全启动 。
保护内核模式驱动程序对控制流防护 (CFG) 位图的修改。
保护内核模式代码完整性进程,该进程可确保其他受信任的内核进程具有有效证书。
若要在整个企业中具有支持硬件的 Windows 设备上启用内存完整性,请使用以下任一选项:
使用 Windows 安全中心启用内存完整性
内存完整性 可以在 Windows 安全中心 设置中打开,并在以下位置找到: Windows 安全中心 >设备 安全 > 核心隔离详细信息 > 内存完整性 。 有关详细信息,请参阅 Windows 安全中心中的设备保护 。
从 Windows 11 22H2 开始,如果关闭内存完整性, Windows 安全中心 会显示警告。 警告指示器还显示在 Windows 任务栏和 Windows 通知中心内的 Windows 安全中心图标上。 用户可以在 Windows 安全中心 内消除警告。
使用 Intune 启用内存完整性
使用 基于虚拟化的技术 >虚拟机 监控程序强制代码完整性 设置,通过 设置目录 来启用内存完整性。 还可以使用 VirtualizationBasedTechnology CSP 中的 HypervisorEnforcedCodeIntegrity 节点。
使用组策略编辑器 (gpedit.msc) 编辑现有 GPO 或创建新 GPO。
使用组策略编辑器 (gpedit.msc) 编辑现有 GPO 或创建新 GPO。
导航到 “计算机配置 > ”、“管理模板”、“ 系统 >”、“> 设备 Guard ”。
导航到 “计算机配置 > ”、“管理模板”、“ 系统 >”、“> 设备 Guard ”。
双击打开基于 虚拟化的安全性 。
双击打开基于 虚拟化的安全性 。
选中 已启用 。 在 “基于虚拟化的代码完整性保护 ”下,选择“ 已启用,无 UEFI 锁定” 。 如果要防止远程或通过策略更新禁用内存完整性,仅选择“ 使用 UEFI 锁定启用” 。 启用 UEFI 锁定后,如果想要关闭内存完整性,必须有权访问 UEFI BIOS 菜单才能关闭安全启动。
选中 已启用 。 在 “基于虚拟化的代码完整性保护 ”下,选择“ 已启用,无 UEFI 锁定” 。 如果要防止远程或通过策略更新禁用内存完整性,仅选择“ 使用 UEFI 锁定启用” 。 启用 UEFI 锁定后,如果想要关闭内存完整性,必须有权访问 UEFI BIOS 菜单才能关闭安全启动。
若要在加入域的计算机上应用新策略,请重启或在提升的命令提示符中运行 gpupdate /force 。
设置以下注册表项以启用内存完整性。 这些注册表项提供一组与组策略提供的配置选项类似的配置选项。
在下面的命令中,为 安全启动 和 带 DMA 的安全启动 选择相应设置。 在大多数情况下,建议选择 安全启动 。 此选项为安全启动提供与给定计算机硬件支持的保护一样多的保护。 具有输入/输出内存管理单元 (IOMMU) 的计算机将具有带 DMA 保护的安全启动。 不具有 IOMMU 的计算机将仅启用安全启动。
在下面的命令中,为 安全启动 和 带 DMA 的安全启动 选择相应设置。 在大多数情况下,建议选择 安全启动 。 此选项为安全启动提供与给定计算机硬件支持的保护一样多的保护。 具有输入/输出内存管理单元 (IOMMU) 的计算机将具有带 DMA 保护的安全启动。 不具有 IOMMU 的计算机将仅启用安全启动。
如果选择“ 使用 DMA 安全启动 ”,则仅对支持 DMA 的计算机启用内存完整性和其他 VBS 功能。 也就是说,仅适用于具有 IOMMU 的计算机。 任何没有 IOMMU 的计算机都不会具有 VBS 或内存完整性保护。
如果选择“ 使用 DMA 安全启动 ”,则仅对支持 DMA 的计算机启用内存完整性和其他 VBS 功能。 也就是说,仅适用于具有 IOMMU 的计算机。 任何没有 IOMMU 的计算机都不会具有 VBS 或内存完整性保护。
系统上的所有驱动程序都必须与代码完整性的基于虚拟化的保护兼容;否则,你的系统可能失败。 建议先在一组测试计算机上启用这些功能,然后再在用户计算机上启用它们。
系统上的所有驱动程序都必须与代码完整性的基于虚拟化的保护兼容;否则,你的系统可能失败。 建议先在一组测试计算机上启用这些功能,然后再在用户计算机上启用它们。
建议的设置 (在没有 UEFI 锁定的情况下启用内存完整性) :
如果要自定义上述建议的设置,请使用以下注册表项。
若要仅启用 VBS (不启用内存完整性) : reg add "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard" /v "EnableVirtualizationBasedSecurity" /t REG_DWORD /d 1 /f
若要仅启用 VBS (不启用内存完整性) :
若要启用 VBS 并仅要求安全启动 (值为 1) : reg add "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard" /v "RequirePlatformSecurityFeatures" /t REG_DWORD /d 1 /f
若要启用 VBS 并仅要求安全启动 (值为 1) :
若要启用具有安全启动和 DMA 保护的 VBS (值 3) : reg add "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard" /v "RequirePlatformSecurityFeatures" /t REG_DWORD /d 3 /f
若要启用具有安全启动和 DMA 保护的 VBS (值 3) :
若要在没有 UEFI 锁定的情况下启用 VBS (值为 0) : reg add "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard" /v "Locked" /t REG_DWORD /d 0 /f
若要在没有 UEFI 锁定的情况下启用 VBS (值为 0) :
若要使用 UEFI 锁定启用 VBS (值为 1) : reg add "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard" /v "Locked" /t REG_DWORD /d 1 /f
若要使用 UEFI 锁定启用 VBS (值为 1) :
若要启用内存完整性: reg add "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity" /v "Enabled" /t REG_DWORD /d 1 /f
若要在没有 UEFI 锁定的情况下启用内存完整性 (值为 0) : reg add "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity" /v "Locked" /t REG_DWORD /d 0 /f
若要在没有 UEFI 锁定的情况下启用内存完整性 (值为 0) :
若要使用 UEFI 锁定启用内存完整性 (值为 1) : reg add "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity" /v "Locked" /t REG_DWORD /d 1 /f
若要使用 UEFI 锁定启用内存完整性 (值为 1) :
若要在强制模式下启用 VBS (和内存完整性) ,请执行以下操作: reg add "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard" /v "Mandatory" /t REG_DWORD /d 1 /f 强制 设置可阻止 OS 加载程序在虚拟机监控程序、安全内核或其依赖模块之一无法加载的情况下继续启动。 重要提示 在启用此模式之前应特别小心,因为如果虚拟化模块出现任何故障,系统将拒绝启动。
若要在强制模式下启用 VBS (和内存完整性) ,请执行以下操作:
强制 设置可阻止 OS 加载程序在虚拟机监控程序、安全内核或其依赖模块之一无法加载的情况下继续启动。
在启用此模式之前应特别小心,因为如果虚拟化模块出现任何故障,系统将拒绝启动。
若要将内存完整性 UI 灰显并显示消息 This setting is managed by your administrator : reg delete HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity /v "WasEnabledBy" /f
若要将内存完整性 UI 灰显并显示消息 This setting is managed by your administrator :
若要让内存完整性 UI 正常运行 (未灰显) : reg add HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity /v "WasEnabledBy" /t REG_DWORD /d 2 /f
若要让内存完整性 UI 正常运行 (未灰显) :
使用适用于企业的应用控制启用内存完整性
你可以使用应用控制策略,通过以下任何技术打开内存完整性:
使用 应用控制向导 创建或编辑应用控制策略,并在向导的 “策略规则 ”页上选择受 虚拟机监控程序保护的代码完整性 选项。
使用 Set-HVCIOptions PowerShell cmdlet。
编辑应用控制策略 XML 并修改为元素设置的 <HVCIOptions> 值。
如果将应用控制策略设置为打开内存完整性,则即使策略处于审核模式,它也会打开。
验证启用的 VBS 和内存完整性功能
使用 Win32_DeviceGuard WMI 类
Windows 10、Windows 11 和 Windows Server 2016 及更高版本具有用于 VBS 相关属性和功能的 WMI 类: Win32_DeviceGuard 。 此类可使用以下命令从提升的 Windows PowerShell 会话查询:
从 Windows 10 版本 1803 和 Windows 11 版本 21H2 开始,基于模式的执行控制属性将仅列为可用。 针对 Intel 的 基于模式的执行控制 和 AMD 的 来宾模式执行陷阱 功能均报告了此值。
此命令的输出提供可用的基于硬件的安全功能和当前启用的功能的详细信息。
InstanceIdentifier :特定设备唯一且由 WMI 设置的字符串。
InstanceIdentifier :特定设备唯一且由 WMI 设置的字符串。
版本 :此字段列出此 WMI 类的版本。 现在,唯一有效的值是 1.0 。
版本 :此字段列出此 WMI 类的版本。 现在,唯一有效的值是 1.0 。
AvailableSecurityProperties :此字段有助于枚举和报告 VBS 和内存完整性的相关安全属性的状态。 值 描述 0 如果存在,则设备上不存在相关属性。 1 如果存在,则虚拟机监控程序可用。 2 如果存在,则安全启动可用。 3 如果存在,则 DMA 保护可用。 4 如果存在,则安全内存覆盖可用。 5 如果存在,则 NX 保护可用。 6 如果存在,则 SMM 缓解可用。 7 如果存在,MBEC/GMET 可用。 8 如果存在,APIC 虚拟化可用。
AvailableSecurityProperties :此字段有助于枚举和报告 VBS 和内存完整性的相关安全属性的状态。
CodeIntegrityPolicyEnforcementStatus :此字段指示代码完整性策略强制执行状态。 值 描述 0 关闭 1 审核。 2 强制执行。
CodeIntegrityPolicyEnforcementStatus :此字段指示代码完整性策略强制执行状态。
RequiredSecurityProperties :此字段描述启用 VBS 所需的安全属性。 值 描述 0 无需任何项。 1 如果存在,则需要虚拟机监控程序支持。 2 如果存在,则需要安全启动。 3 如果存在,则需要 DMA 保护。 4 如果存在,则需要安全内存覆盖。 5 如果存在,则需要 NX 保护。 6 如果存在,则需要 SMM 缓解。 7 如果存在,则需要 MBEC/GMET。
RequiredSecurityProperties :此字段描述启用 VBS 所需的安全属性。
SecurityServicesConfigured :此字段指示是否配置了 Credential Guard 或内存完整性。 值 描述 0 未配置任何服务。 1 如果存在,则配置凭据保护。 2 如果存在,则配置了内存完整性。 3 如果存在,则配置了 System Guard 安全启动。 4 如果存在,则配置了 SMM 固件测量。 5 如果存在,则配置了内核模式硬件强制实施的堆栈保护。 6 如果存在,则在审核模式下配置了内核模式硬件强制实施的堆栈保护。 7 如果存在,则配置了 Hypervisor-Enforced 分页转换。
SecurityServicesConfigured :此字段指示是否配置了 Credential Guard 或内存完整性。
SecurityServicesRunning :此字段指示 Credential Guard 或内存完整性是否正在运行。 值 描述 0 没有运行任何服务。 1 如果存在,则运行凭据保护。 2 如果存在,则内存完整性正在运行。 3 如果存在,则表示 System Guard 安全启动正在运行。 4 如果存在,SMM 固件测量正在运行。 5 如果存在,内核模式硬件强制实施的堆栈保护正在运行。 6 如果存在,内核模式硬件强制实施的堆栈保护正在审核模式下运行。 7 如果存在,则 Hypervisor-Enforced 分页转换正在运行。
SecurityServicesRunning :此字段指示 Credential Guard 或内存完整性是否正在运行。
SmmIsolationLevel :此字段指示 SMM 隔离级别。
SmmIsolationLevel :此字段指示 SMM 隔离级别。
UsermodeCodeIntegrityPolicyEnforcementStatus :此字段指示用户模式代码完整性策略强制执行状态。 值 描述 0 关闭 1 审核。 2 强制执行。
UsermodeCodeIntegrityPolicyEnforcementStatus :此字段指示用户模式代码完整性策略强制执行状态。
VirtualizationBasedSecurityStatus :此字段指示 VBS 是否已启用并正在运行。 值 描述 0 未启用 VBS。 1 VBS 已启用但尚未运行。 2 VBS 已启用且正在运行。
VirtualizationBasedSecurityStatus :此字段指示 VBS 是否已启用并正在运行。
VirtualMachineIsolation :此字段指示是否启用了虚拟机隔离。
VirtualMachineIsolation :此字段指示是否启用了虚拟机隔离。
VirtualMachineIsolationProperties :此字段指示可用的虚拟机隔离属性集。 值 描述 1 AMD SEV-SNP 2 基于虚拟化的安全性 3 Intel TDX
VirtualMachineIsolationProperties :此字段指示可用的虚拟机隔离属性集。
使用 msinfo32.exe
确定可用和已启用的 VBS 功能的另一种方法是从提升的 PowerShell 会话运行 msinfo32.exe。 运行此程序时,VBS 功能将显示在 “系统摘要 ”部分的底部。
如果设备驱动程序无法加载或在运行时崩溃,则可以使用 设备管理器 更新驱动程序。
如果在启动过程中遇到严重错误,或者打开内存完整性后系统不稳定,可以使用 Windows 恢复环境 (Windows RE) 进行恢复。 首先,禁用用于启用 VBS 和内存完整性的任何策略,例如组策略。 然后,在受影响的计算机上启动到 Windows RE,请参阅 Windows RE 技术参考 。 登录到 Windows RE 后,将内存完整性注册表项设置为 off: reg add "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity" /v "Enabled" /t REG_DWORD /d 0 /f 最后,重启设备。
首先,禁用用于启用 VBS 和内存完整性的任何策略,例如组策略。
首先,禁用用于启用 VBS 和内存完整性的任何策略,例如组策略。
然后,在受影响的计算机上启动到 Windows RE,请参阅 Windows RE 技术参考 。
然后,在受影响的计算机上启动到 Windows RE,请参阅 Windows RE 技术参考 。
登录到 Windows RE 后,将内存完整性注册表项设置为 off: reg add "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity" /v "Enabled" /t REG_DWORD /d 0 /f
登录到 Windows RE 后,将内存完整性注册表项设置为 off:
如果使用 UEFI 锁定打开了内存完整性,则需要禁用安全启动才能完成 Windows RE 恢复步骤。
内存完整性可以保护 Hyper-V 虚拟机,就像保护物理机一样。 在虚拟机中启用内存完整性的步骤相同。
内存完整性可防止在来宾虚拟机中运行的恶意软件。 它不提供来自主机管理员的额外保护。 在主机中,可以禁用虚拟机的内存完整性:
在 Hyper-V 虚拟机中运行内存完整性的要求
Hyper-V 主机必须至少运行 Windows Server 2016 或 Windows 10 版本 1607。
Hyper-V 虚拟机必须是第 2 代并且至少运行 Windows Server 2016 或 Windows 10。
可以同时启用内存完整性和 嵌套虚拟化 。 若要在虚拟机上启用 Hyper-V 角色,必须首先在 Windows 嵌套虚拟化环境中安装 Hyper-V 角色。
虚拟光纤通道适配器与内存完整性不兼容。 在将虚拟光纤通道适配器连接到虚拟机之前,必须首先使用 选择退出基于虚拟化的安全性。 Set-VMSecurity
直通磁盘的 AllowFullSCSICommandSet 选项与内存完整性不兼容。 在使用 AllowFullSCSICommandSet 配置直通磁盘之前,必须首先使用 选择退出基于虚拟化的安全性。 Set-VMSecurity
想要尝试使用 Ask Learn 阐明或指导你完成本主题?
Last updated on 2026-08-20