You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Win11新安装后安全策略阻止运行未签名PS1文件,ExecutionPolicy设置无效

解决Windows下jenv.ps1未签名无法运行的问题

问题场景

尝试运行Windows版jenv时,遇到未签名脚本的安全错误,即使已将Process、CurrentUser、LocalMachine的执行策略设为Unrestricted/Bypass,错误仍存在:

PS > jenv
SecurityError: File D:\sdk\JEnv-for-Windows-main\src\jenv.ps1 cannot be loaded. The file D:\sdk\JEnv-for-Windows-main\src\jenv.ps1 is not digitally signed. You cannot run this script on the current system. For more information about running scripts and setting execution policy, see about_Execution_Policies at https://go.microsoft.com/fwlink/?LinkID=135170.

当前执行策略列表:

PS > Get-ExecutionPolicy -list

        Scope ExecutionPolicy
        ----- ---------------
MachinePolicy       Undefined
   UserPolicy       Undefined
      Process          Bypass
  CurrentUser          Bypass
 LocalMachine          Bypass

解决方案

1. 临时会话级绕过(最简单)

关闭当前PowerShell窗口,重新打开时使用以下命令启动:

powershell.exe -ExecutionPolicy Bypass

在这个新会话里直接运行jenv即可,此设置仅对当前会话生效,不会修改系统全局配置。

2. 解除脚本的下载锁定(常见原因)

如果脚本是从网上下载的,Windows会自动标记为"不安全",即使执行策略允许也会拦截:

  • 右键jenv.ps1文件,选择「属性」
  • 在「常规」标签页底部,勾选「解除锁定」,点击「应用」→「确定」
  • 重新运行脚本即可。

3. 给脚本添加自签名证书(长期方案)

如果需要长期使用该脚本,可以给自己的脚本添加自签名证书:

  1. 创建自签名证书:
New-SelfSignedCertificate -Type CodeSigningCert -Subject "CN=Your Name" -CertStoreLocation "Cert:\CurrentUser\My"
  1. 将证书导入信任根:
    • 打开「管理用户证书」,找到「个人」→「证书」里刚创建的证书,右键→「所有任务」→「导出」,导出为CER格式
    • 导入到「受信任的根证书颁发机构」→「证书」中
  2. 给脚本签名:
Set-AuthenticodeSignature -FilePath "D:\sdk\JEnv-for-Windows-main\src\jenv.ps1" -Certificate (Get-ChildItem Cert:\CurrentUser\My -CodeSigningCert)

4. 检查组策略(排除全局限制)

虽然MachinePolicy和UserPolicy显示为Undefined,但仍可确认组策略是否有隐藏限制:

  • 按下Win+R输入gpedit.msc打开组策略编辑器
  • 导航到「计算机配置」→「管理模板」→「Windows组件」→「Windows PowerShell」
  • 找到「启用脚本执行」,确保设置为「未配置」或「允许所有脚本」

内容的提问来源于stack exchange,提问作者Kevin Barker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 21:15:05