windows上运行程序,提示 应用程序控制策略已阻止此文件,如何去除阻止
Windows 提示 “应用程序控制策略已阻止此文件”,通常不是普通杀毒拦截,而是系统策略类拦截。常见来源有:
-
Windows Defender 应用程序控制 WDAC
-
AppLocker
-
Smart App Control 智能应用控制
-
组策略 / 企业安全策略
-
文件来自网络,被 Windows 标记为不受信任
-
杀毒/EDR/企业管控软件拦截
可以按下面顺序排查。
一、先解除文件“来自网络”的阻止
右键这个 exe 文件 → 属性 → 看底部是否有:
此文件来自其他计算机,可能被阻止以帮助保护该计算机
勾选或点击:
解除锁定 / Unblock
然后点 应用 / 确定,再运行。
也可以用 PowerShell:
Unblock-File -Path "C:\路径\你的程序.exe"
如果是整个目录:
Get-ChildItem "C:\你的目录" -Recurse | Unblock-File
二、如果是“智能应用控制”阻止
Windows 11 可能会提示类似:
智能应用控制已阻止可能不安全的应用
无法验证其发布者
处理方法:
打开:
Windows 安全中心
→ 应用和浏览器控制
→ 智能应用控制设置
如果当前是 开启,可以改为 关闭。
注意:
智能应用控制一旦关闭,通常不能直接重新开启,除非重装或重置 Windows,所以建议先确认是不是测试机。
更推荐的做法是:
给程序做 代码签名,或者把程序放到可信发布流程中。
三、检查 AppLocker 策略
如果是企业环境、域控环境,可能是 AppLocker 拦截。
查看本机策略:
按 Win + R 输入:
secpol.msc
然后查看:
应用程序控制策略
→ AppLocker
重点看:
可执行规则
Windows Installer 规则
脚本规则
打包应用规则
如果里面有拒绝规则,需要删除或新增允许规则。
也可以用 PowerShell 查看:
Get-AppLockerPolicy -Local | Select-Object -ExpandProperty RuleCollections
查看生效策略:
Get-AppLockerPolicy -Effective -Xml
如果是域策略下发,本机改了也可能没用,需要在域控 GPO 里改。
四、检查 WDAC 策略
WDAC 拦截时,常见提示也是“应用程序控制策略已阻止此文件”。
查看是否存在 WDAC 策略文件:
dir C:\Windows\System32\CodeIntegrity
重点看是否有:
SIPolicy.p7b
CiPolicies\Active\*.cip
也可以查看事件日志:
事件查看器
→ 应用程序和服务日志
→ Microsoft
→ Windows
→ CodeIntegrity
→ Operational
如果看到被拦截的 exe 路径,说明是 WDAC。
临时排查可以查看:
Get-CimInstance -Namespace root\Microsoft\Windows\CI -ClassName MSFT_CIPolicy
如果是 WDAC,需要删除或替换策略,常见路径:
C:\Windows\System32\CodeIntegrity\SIPolicy.p7b
C:\Windows\System32\CodeIntegrity\CiPolicies\Active\
但不建议直接删除,尤其是公司设备,可能导致安全策略异常或开机策略问题。
五、检查组策略里的软件限制策略
按 Win + R 输入:
gpedit.msc
查看:
计算机配置
→ Windows 设置
→ 安全设置
→ 软件限制策略
如果有路径规则、哈希规则、证书规则阻止你的程序,需要修改为允许。
也可以查看:
用户配置
→ Windows 设置
→ 安全设置
→ 软件限制策略
六、如果是企业安全软件拦截
比如火绒、亚信、ESET、360、深信服、奇安信、Defender for Endpoint 等,也可能把提示包装成策略拦截。
可以先测试:
-
换一个目录运行,例如:
C:\Tools\你的程序.exe
-
右键管理员运行
-
暂时退出安全软件测试
-
查看安全软件日志
-
加入白名单
-
对 exe 做数字签名
七、开发调试场景推荐做法
如果这是你自己编译的程序,建议:
1. 不要直接从下载目录运行
把程序放到:
C:\Tools\
C:\Program Files\YourApp\
2. 删除 Zone.Identifier 标记
Get-Item "C:\路径\你的程序.exe" -Stream *
Remove-Item "C:\路径\你的程序.exe" -Stream Zone.Identifier
3. 给程序签名
如果经常被拦,最好使用代码签名证书。
签名示例:
signtool sign /fd SHA256 /tr http://timestamp.digicert.com /td SHA256 /a "你的程序.exe"
4. 检查是否缺少发布者信息
右键 exe → 属性 → 数字签名。
如果没有签名,在 Windows 11、企业环境、Smart App Control 下更容易被阻止。
八、快速判断是哪种策略拦截
可以先看事件日志:
AppLocker 日志
事件查看器
→ 应用程序和服务日志
→ Microsoft
→ Windows
→ AppLocker
重点看:
EXE and DLL
MSI and Script
Packaged app-Execution
WDAC / Code Integrity 日志
事件查看器
→ 应用程序和服务日志
→ Microsoft
→ Windows
→ CodeIntegrity
→ Operational
Defender 日志
事件查看器
→ 应用程序和服务日志
→ Microsoft
→ Windows
→ Windows Defender
→ Operational
推荐你先执行这几个命令
管理员 PowerShell 运行:
Unblock-File -Path "C:\路径\你的程序.exe"
然后查是否有 AppLocker:
Get-AppLockerPolicy -Effective -Xml
再查 WDAC:
dir C:\Windows\System32\CodeIntegrity
dir C:\Windows\System32\CodeIntegrity\CiPolicies\Active
最后看事件日志:
CodeIntegrity / Operational
AppLocker / EXE and DLL
如果你只是个人电脑,优先处理顺序是:
解除锁定文件
→ 关闭智能应用控制
→ Windows 安全中心添加排除项
→ 检查本地组策略/AppLocker
→ 检查 WDAC
如果是公司电脑或客户环境,优先处理顺序是:
查事件日志
→ 判断 AppLocker 还是 WDAC
→ 由管理员在 GPO/MDM/安全平台中加白
→ 程序签名
最常见有效方法是:右键属性解除锁定 + 关闭智能应用控制 + 给程序签名或加白名单。
更多推荐

所有评论(0)