打开windows的数据执行保护设置时,有时会发现两个选项全部呈灰色,无法点击,也不能添加需要排除的程序。
如果按照网上的教程执行BCDEdit命令,还可能出现以下错误:
无法打开启动配置数据存储。
拒绝访问。
出现“拒绝访问”,通常是因为命令提示符、PowerShell或Windows终端没有以管理员身份运行。
但DEP选项呈灰色不一定只是权限问题,也可能与当前DEP启动策略、电脑硬件设置或者组织管理策略有关。
一、什么是数据执行保护?
数据执行保护的英文名称是Data Execution Prevention,简称DEP。
DEP是Windows的一项内存安全功能,可以阻止程序在本来只用于保存数据的内存区域中执行代码,从而降低部分恶意代码、缓冲区溢出和内存攻击造成的风险。
Windows通过启动配置数据中的nx参数控制DEP策略。
常见策略包括:
| 参数 | 作用 |
|---|---|
OptIn |
只为Windows核心程序和服务启用DEP |
OptOut |
为所有程序启用DEP,但允许手动添加例外 |
AlwaysOn |
强制为所有程序启用DEP,不允许添加例外 |
AlwaysOff |
关闭DEP,不推荐使用 |
如果当前设置为AlwaysOn或AlwaysOff,Windows图形界面中的DEP选项可能无法调整。
微软官方的BCDEdit /set文档也列出了这四种nx策略。
二、操作前需要注意什么?
BCDEdit用于修改Windows启动配置,输入错误的参数可能影响系统启动。
操作之前建议注意以下事项:
- 创建重要文件备份;
- 确认使用的是管理员账号;
- 如果电脑启用了BitLocker或设备加密,先确认可以找到恢复密钥;
- 公司或学校管理的电脑,建议先联系系统管理员;
- 不要尝试网上来源不明的BCD命令;
- 不建议为了运行某个旧软件而完全关闭DEP。
如果只是DEP页面呈灰色,通常将策略恢复为OptIn或OptOut即可,不需要关闭安全启动,也不需要关闭BitLocker。
三、以管理员身份打开命令提示符
不需要进入C:\Windows\System32寻找cmd.exe。
可以使用以下方法:
- 点击Windows开始菜单;
- 搜索“命令提示符”或
cmd; - 在搜索结果中右键点击“命令提示符”;
- 选择“以管理员身份运行”;
- 出现用户账户控制提示时,点击“是”。
也可以右键点击开始菜单,选择:
终端(管理员)
或者:
Windows PowerShell(管理员)
窗口标题中出现“管理员”字样,才说明当前终端具有修改启动配置的权限。
四、查看当前DEP策略
在管理员命令提示符中输入:
bcdedit.exe /enum {current}
如果使用PowerShell或Windows终端,建议给{current}加上引号:
bcdedit.exe /enum "{current}"
在返回结果中找到:
nx
后面的值可能是:
OptIn
OptOut
AlwaysOn
AlwaysOff
如果显示AlwaysOn或AlwaysOff,这可能就是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策略的定义如下:
- 返回值
2:OptIn; - 返回值
3:OptOut; - 返回值
1:AlwaysOn; - 返回值
0:AlwaysOff。
七、重启后重新打开DEP设置
电脑重新启动后,可以按照以下步骤检查:
- 按下
Win+R; - 输入:
sysdm.cpl
- 点击“确定”;
- 打开“高级”选项卡;
- 在“性能”区域点击“设置”;
- 打开“数据执行保护”选项卡。
如果设置已经恢复,页面中的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是否已经变成OptIn或OptOut。
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支持状态。