根本不是权限问题,而是PowerShell默认Restricted策略禁止.ps1脚本执行;应运行Set-ExecutionPolicy RemoteSigned -Scope CurrentUser并重启终端,路径含空格时须用&".ps1"调用。
绝大多数“权限不足”报错根本不需要管理员权限——它只是终端继承了错误的策略、路径或上下文,强行提权反而让问题更难排查、更危险。
这不是权限问题,是Windows默认禁止.ps1脚本执行的安全策略。VSCode终端默认启动PowerShell,你写的构建脚本、部署脚本一运行就卡住,错误里甚至不出现Access Denied,只提示策略限制。
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser(无需管理员)Get-ExecutionPolicy -Scope CurrentUser 应返回 RemoteSigned
Ctrl+Shift+` 新建一个——旧终端不会自动刷新策略Unrestricted 或 Bypass,尤其在公司设备上,组策略可能随时覆盖错误路径通常指向 /usr/local/lib/node_modules(macOS/Linux)或 C:Program Filesnodejsnode_modules(Windows),说明npm正试图往系统级目录写文件,而普通用户无权访问。
npm config set prefix ~/.local,再把 ~/.local/bin 加进 $PATH
npm config set prefix %USERPROFILE%AppDataRoamingnpm,并确认该路径已在系统 PATH 中npm install -g 都会写入用户目录,不再触发权限拦截sudo npm install -g——npm 会以 root 身份执行任意 preinstall 脚本,风险极高这个提示来自Windows内核拦截,不是VSCode主动报错。真正原因是:目标路径NTFS权限拒绝写入、文件被设为只读、或被其他进程(如OneDrive、杀软、另一个编辑器)锁定。
C:UsersXXXOneDrive、C:UsersXXXDownloads 或 C:Program Files ——这些位置有同步锁或UAC隔离,不是权限问题,是路径限制仅当明确必须操作受保护资源时才启用,比如:调试驱动、绑定139/445端口、安装需写注册表的CLI工具、或编辑 C:WindowsSystem32 下的配置文件。此时风险可控,但仍有硬性约束:
code --install-extension 在管理员模式下会失败——扩展安装机制不兼容,应改用“从VSIX安装”真正的麻烦往往不在“能不能提权”,而在提权后子进程权限失控、插件行为异常、Git SSH密钥失效、或WSL中/mnt/c路径权限错乱——这些坑比原始报错更难定位。