遇到 VSCode 集成终端 PowerShell 报错权限不足,通常是 Windows 执行策略限制,将当前用户策略改为 RemoteSigned 即可。
先说结论:这是 Windows 默认安全机制拦截了脚本,调整策略即可,无需重装软件。
- 确认报错是否包含“禁止运行脚本”字样
- 优先修改 CurrentUser 作用域策略
- 修改后验证策略是否变更成功
报错现场示例
典型报错信息如下,红色字体提示脚本无法加载:
无法加载文件 xxx.ps1,因为在此系统上禁止运行脚本。常见于首次打开 VSCode 终端或运行 npm scripts 时。
命令速用版
set-ExecutionPolicy RemoteSigned -Scope CurrentUser为什么会这样
Windows PowerShell 默认有一套执行策略(Execution Policy),用来防止恶意脚本自动运行。新装系统或某些安全更新后,默认策略往往是 Restricted,即禁止所有脚本加载。VSCode 集成终端调用 PowerShell 时,会尝试加载配置文件或脚本,从而触发拦截。
分步处理
1. 在 VSCode 中打开终端,确保 Shell 类型是 PowerShell。
2. 输入命令:set-ExecutionPolicy RemoteSigned -Scope CurrentUser 并回车。
3. 系统会提示确认,输入 Y 或 A 确认更改。
4. 如果提示权限不足,通常是组策略限制,建议联系 IT 部门或检查是否有更高优先级策略覆盖。
组策略锁定排查
若修改失败且提示访问拒绝,可能是企业组策略锁定。排查步骤:
1. 按 Win + R,输入 gpedit.msc 打开组策略编辑器。
2. 导航至:计算机配置 -> 管理模板 -> Windows 组件 -> Windows PowerShell。
3. 检查“打开脚本执行”策略是否被启用并锁定为 Restricted。
4. 若被锁定,个人无法修改,需联系公司 IT 管理员放行。
怎么验证是否生效
在终端输入 get-ExecutionPolicy -List,查看 CurrentUser 或当前作用域是否显示为 RemoteSigned。
若显示 RemoteSigned,重新加载 VSCode 终端即可正常使用。
常见坑
1. 不要随意使用 Unrestricted 策略,RemoteSigned 已足够日常开发使用。
2. 修改后若仍报错,尝试重启 VSCode 或终端窗口。
3. 若无需 PowerShell,可在 VSCode 设置中将默认终端改为 Cmd 或 Git Bash。
参考来源
Microsoft Learn: about_Execution_Policies
URL: https://learn.microsoft.com/powershell/module/microsoft.powershell.core/about/about_execution_policies