数据执行保护(DEP)选项呈灰色、无法开启怎么办?Windows 10/11解决方法

打开windows的数据执行保护设置时,有时会发现两个选项全部呈灰色,无法点击,也不能添加需要排除的程序。

如果按照网上的教程执行BCDEdit命令,还可能出现以下错误:

无法打开启动配置数据存储。
拒绝访问。

出现“拒绝访问”,通常是因为命令提示符、PowerShell或Windows终端没有以管理员身份运行。

但DEP选项呈灰色不一定只是权限问题,也可能与当前DEP启动策略、电脑硬件设置或者组织管理策略有关。

一、什么是数据执行保护?

数据执行保护的英文名称是Data Execution Prevention,简称DEP。

DEP是Windows的一项内存安全功能,可以阻止程序在本来只用于保存数据的内存区域中执行代码,从而降低部分恶意代码、缓冲区溢出和内存攻击造成的风险。

Windows通过启动配置数据中的nx参数控制DEP策略。

常见策略包括:

参数 作用
OptIn 只为Windows核心程序和服务启用DEP
OptOut 为所有程序启用DEP,但允许手动添加例外
AlwaysOn 强制为所有程序启用DEP,不允许添加例外
AlwaysOff 关闭DEP,不推荐使用

如果当前设置为AlwaysOnAlwaysOff,Windows图形界面中的DEP选项可能无法调整。

微软官方的BCDEdit /set文档也列出了这四种nx策略。

二、操作前需要注意什么?

BCDEdit用于修改Windows启动配置,输入错误的参数可能影响系统启动。

操作之前建议注意以下事项:

  • 创建重要文件备份;
  • 确认使用的是管理员账号;
  • 如果电脑启用了BitLocker或设备加密,先确认可以找到恢复密钥;
  • 公司或学校管理的电脑,建议先联系系统管理员;
  • 不要尝试网上来源不明的BCD命令;
  • 不建议为了运行某个旧软件而完全关闭DEP。

如果只是DEP页面呈灰色,通常将策略恢复为OptInOptOut即可,不需要关闭安全启动,也不需要关闭BitLocker。

三、以管理员身份打开命令提示符

不需要进入C:\Windows\System32寻找cmd.exe

可以使用以下方法:

  1. 点击Windows开始菜单;
  2. 搜索“命令提示符”或cmd
  3. 在搜索结果中右键点击“命令提示符”;
  4. 选择“以管理员身份运行”;
  5. 出现用户账户控制提示时,点击“是”。

也可以右键点击开始菜单,选择:

终端(管理员)

或者:

Windows PowerShell(管理员)

窗口标题中出现“管理员”字样,才说明当前终端具有修改启动配置的权限。

四、查看当前DEP策略

在管理员命令提示符中输入:

bcdedit.exe /enum {current}

如果使用PowerShell或Windows终端,建议给{current}加上引号:

bcdedit.exe /enum "{current}"

在返回结果中找到:

nx

后面的值可能是:

OptIn
OptOut
AlwaysOn
AlwaysOff

如果显示AlwaysOnAlwaysOff,这可能就是DEP设置页面呈灰色的原因。

五、将DEP恢复为默认的OptIn模式

如果希望恢复Windows常用的默认策略,可以在管理员终端中执行:

bcdedit.exe /set "{current}" nx OptIn

如果操作成功,会显示:

操作成功完成。

然后重新启动电脑,让新的启动配置生效。

OptIn的含义是:为Windows系统核心组件和服务启用DEP,但默认不对所有32位应用程序强制启用。

因此,这条命令可以理解为恢复较常见的默认DEP策略,而不是“为所有程序开启DEP”。

六、为所有程序开启DEP并允许添加例外

如果希望在DEP设置页面选择“为除下列选定程序之外的所有程序和服务启用DEP”,可以使用:

bcdedit.exe /set "{current}" nx OptOut

执行成功后重新启动电脑。

OptOut会默认对所有程序启用DEP,同时允许管理员为存在兼容性问题的程序添加例外。

微软对不同DEP策略的定义如下:

  • 返回值2OptIn
  • 返回值3OptOut
  • 返回值1AlwaysOn
  • 返回值0AlwaysOff

七、重启后重新打开DEP设置

电脑重新启动后,可以按照以下步骤检查:

  1. 按下Win+R
  2. 输入:
sysdm.cpl
  1. 点击“确定”;
  2. 打开“高级”选项卡;
  3. 在“性能”区域点击“设置”;
  4. 打开“数据执行保护”选项卡。

如果设置已经恢复,页面中的DEP选项应该可以正常查看或调整。

八、如何确认DEP当前是否可用?

可以使用PowerShell查看DEP状态。

以管理员身份打开PowerShell,然后执行:

Get-CimInstance Win32_OperatingSystem |
    Select-Object DataExecutionPrevention_Available,
                  DataExecutionPrevention_SupportPolicy

其中:

  • DataExecutionPrevention_Available显示True,表示硬件DEP可用;
  • DataExecutionPrevention_SupportPolicy显示当前策略编号。

对应关系如下:

数值 DEP策略
0 AlwaysOff
1 AlwaysOn
2 OptIn
3 OptOut

微软的Win32_OperatingSystem文档对这些属性和数值有详细说明。

九、为什么执行BCDEdit会提示拒绝访问?

如果出现:

无法打开启动配置数据存储。
拒绝访问。

最常见的原因是终端没有管理员权限。

普通管理员账号打开的普通命令提示符,默认也不一定具有完整的提升权限。必须主动选择“以管理员身份运行”。

可以检查窗口标题是否包含:

管理员:命令提示符

或:

管理员:Windows PowerShell

微软明确要求,使用BCDEdit修改启动配置时,必须从提升权限的命令提示符中运行。

十、以管理员身份运行后仍然无法修改怎么办?

如果确认终端已经以管理员身份运行,但DEP选项仍然呈灰色,可以继续排查以下问题。

1. 是否已经重新启动电脑

修改nx参数以后,必须重新启动电脑才会生效,只关闭并重新打开设置窗口通常没有用。

2. 当前是否为AlwaysOn或AlwaysOff

重新执行:

bcdedit.exe /enum "{current}"

确认nx是否已经变成OptInOptOut

3. 电脑是否被组织管理

公司、学校或机构管理的电脑,DEP设置可能受到组策略、Intune或其他终端管理工具限制。

这种情况下,即使本地账号是管理员,策略也可能在重启后被重新应用。建议联系单位的系统管理员,不要强行绕过安全策略。

4. 硬件DEP是否被关闭

部分较老的电脑可以在BIOS或UEFI中关闭NX、XD或Execute Disable功能。

如果PowerShell显示:

DataExecutionPrevention_Available : False

可能需要检查处理器是否支持DEP,以及BIOS中的NX、XD或Execute Disable是否已经开启。

不了解BIOS设置时,不建议随意修改,可以先咨询电脑厂商。

5. 是否出现安全启动或BitLocker提示

如果命令提示启动配置受到保护,不要为了执行命令直接关闭Secure Boot或BitLocker。

先确认BitLocker恢复密钥是否可用,并联系设备管理员或电脑厂商,避免修改启动配置后触发恢复验证或无法正常启动。

十一、不建议使用AlwaysOff关闭DEP

有些旧教程会建议执行:

bcdedit.exe /set "{current}" nx AlwaysOff

这会关闭DEP保护,不建议为了运行某个程序长期使用。

如果某个软件因为DEP无法运行,更安全的处理方式是:

  • 将软件升级到最新版本;
  • 检查软件是否来自可信来源;
  • 联系软件开发商解决兼容性问题;
  • 使用OptOut模式后,只对经过确认的32位旧程序设置例外;
  • 不要直接关闭整个系统的DEP保护。

对于64位Windows,硬件DEP始终会应用于64位原生程序,旧版控制面板中的例外设置主要影响32位应用程序。

总结

如果执行BCDEdit时出现“无法打开启动配置数据存储,拒绝访问”,首先应确认命令提示符或PowerShell是否以管理员身份运行。

恢复默认DEP策略可以使用:

bcdedit.exe /set "{current}" nx OptIn

为所有程序启用DEP并允许设置例外,可以使用:

bcdedit.exe /set "{current}" nx OptOut

命令显示“操作成功完成”以后,需要重新启动电脑。

不要将OptIn误解为对所有程序强制开启DEP,也不要轻易使用AlwaysOff关闭安全保护。如果重启后设置仍然呈灰色,应继续检查当前nx策略、设备管理策略和硬件DEP支持状态。

正文完
 0
简子
版权声明:本站原创文章,由 简子 于2022-11-23发表,共计3523字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。