win11报错应用程序控制策略已阻止此文件

最近win11电脑频繁报错应用程序控制策略已阻止此文件,记录一下解决过程。

准确说,这不是普通的”Win11 问题”,而是 Windows 的应用程序控制策略(AppLocker / Windows Defender 应用程序控制 / 智能应用控制)主动拦截了 PyTorch 的 shm.dll。错误码 4551 的本质是:文件物理存在、依赖齐全,但被系统安全机制判定为”不可信二进制”而拒绝加载。

你这个情况在 Windows 11(尤其是 25H2 版本)上特别常见——微软把企业级的 Smart App Control 下沉到了家庭版/专业版,而 PyTorch 的 wheel 包未经 WHQL 签名,它的 DLL 会被当成”不受信任”拦截掉。

🔧 解决方案(按推荐顺序,从最安全到最强硬)

第一步:解除文件锁定 + 加 Windows 安全排除项(最推荐,零风险)

Windows 对”从网络下载或从其他设备复制”的文件会打上标记,需要先解锁:

  1. 解除 NTFS 锁定标记: 以管理员身份打开 PowerShell,执行:

    1
    Unblock-File -Path "C:\software\miniconda\miniconda3\Lib\site-packages\torch\lib\shm.dll"
    如果整个 torch 目录都被锁,可以对目录递归处理。

  2. 把 torch 目录加入 Windows 安全中心排除项

    • 打开 设置 → 隐私和安全性 → Windows 安全中心 → 病毒和威胁防护
    • 点击 管理设置
    • 找到 添加或删除排除项 → 添加排除项 → 文件夹
    • 选择:C:\software\miniconda\miniconda3\Lib\site-packages\torch

    或者用 PowerShell 一键添加:

    1
    Add-MpPreference -ExclusionPath "C:\software\miniconda\miniconda3\Lib\site-packages\torch"

第二步:关闭智能应用控制(Smart App Control)

如果第一步不行,大概率是 Win11 的 Smart App Control 在拦:

  • 设置 → 隐私和安全性 → Windows 安全中心 → 应用和浏览器控制 → 智能应用控制设置
  • 选择 关闭

⚠️ 注意:家庭版关闭后将无法重新启用,除非重置系统。如果你只是个人开发机,关掉无妨;如果是企业/学校电脑,走第四步。

也可以用注册表强制关闭(管理员 PowerShell):

1
reg add "HKLM\SYSTEM\CurrentControlSet\Control\CI\Policy" /v "VerifiedAndReputablePolicyState" /t REG_DWORD /d 0 /f
重启后生效。

⚠️ 千万不要做的事:从网上随便下载 shm.dll 替换!PyTorch 的 DLL 必须从官方 wheel 包来,手动下载的 DLL 不仅版本不匹配,还可能带恶意代码。要修复就 pip uninstall torch 后重装。

如果你试完第一步和第二步还是不行,把你的 Windows 具体版本号(设置 → 系统 → 关于 里看)和 Get-CimInstance -ClassName Win32_DeviceGuard 的输出发给我,我能更精准判断是哪一种策略在拦。

  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2019-2026 Vincere Zhou
  • 访问人数: | 浏览次数:

请我喝杯茶吧~

支付宝
微信