
PowerShell 里运行 claude 报「禁止运行脚本」一次说清 ExecutionPolicy现象在 PowerShell 里敲claude报错claude : 无法加载文件 C:\Program Files\nodejs\node_global\claude.ps1因为在此系统上禁止运行脚本。有关详细信息请参阅 https:/go.microsoft.com/fwlink/?LinkID135170 中的 about_Execution_Policies。 所在位置 行:1 字符: 1 claude ~~~~~~ CategoryInfo : SecurityError: (:) []PSSecurityException FullyQualifiedErrorId : UnauthorizedAccess同一台机器上在cmd 或 Git Bash里跑claude却完全正常。很多人第一反应是「权限不够」于是去「以管理员身份运行」——没用。因为这不是权限问题。根因PowerShell 的脚本执行策略ExecutionPolicy报错里已经点明了about_Execution_Policies。这是 PowerShell 独有的一套「允不允许运行脚本」的开关和系统权限是两回事。Windows 客户端默认策略是Restricted禁止运行任何.ps1脚本文件。那为什么偏偏是 PowerShell 中招因为 npm 全局安装命令行工具时会在安装目录里同时生成三个shim文件给谁用受 ExecutionPolicy 管吗claudeGit Bashshell 脚本否claude.cmdcmd批处理否claude.ps1PowerShellPowerShell 脚本是而 PowerShell 在解析claude时会优先命中.ps1。于是它去加载claude.ps1→ 撞上Restricted→ 报错。一句话不是 claude 装坏了也不是权限低是 PowerShell 自己不让跑.ps1。解决方案方案一放开当前用户的执行策略推荐Set-ExecutionPolicy-Scope CurrentUser-ExecutionPolicy RemoteSigned提示确认时输入Y回车。不需要管理员权限。设置后新开一个 PowerShell 窗口旧的窗口在启动时已经读过旧策略不会即时生效再敲claude即可。RemoteSigned的含义本机产生的脚本放行从网上下载的脚本必须带数字签名。npm 安装出来的.ps1属于本机文件所以能跑安全性和易用性兼顾。方案二不改任何系统设置直接调.cmdshimclaude.cmd.cmd是批处理文件不受 ExecutionPolicy 约束功能与claude完全一致。适合你不愿改动系统配置的场景。方案三换个终端直接在cmd或Git Bash里跑claude都没有这个问题。原理补充ExecutionPolicy 的四个作用域设置执行策略时-Scope指定它作用于哪个层级。系统取用时按优先级从高到低取「第一个非 Undefined 的值」MachinePolicy / UserPolicy (组策略) ← 最高仅企业域控下发 Process (仅当前进程) CurrentUser (当前用户) ← 方案一改的就是这层 LocalMachine (整台机器) ← 改它才需要管理员所以-Scope CurrentUser不需要管理员—— 它只写当前用户的配置注册表HKCU不影响机器上其他账户。如果你在受域控管理的公司电脑上MachinePolicy/UserPolicy已被下发那么CurrentUser的改动会被覆盖得找 IT 处理。验证是否生效Get-ExecutionPolicy-List正常应看到Scope ExecutionPolicy ----- --------------- MachinePolicy Undefined UserPolicy Undefined Process Undefined CurrentUser RemoteSigned LocalMachine Undefined如何还原Set-ExecutionPolicy-Scope CurrentUser Restricted两个常见误区「执行策略 系统权限」❌它是 PowerShell 自己的开关只管「允许不允许跑脚本」跟你是不是管理员、进程令牌无关。「PowerShell 比 cmd 权限高」❌cmd 和 PowerShell 只是两个命令解释器权限完全取决于启动方式普通启动 vs 以管理员身份运行跟是哪个 shell 没关系。PowerShell 能调 .NET/WMI 是「能力多」不是「权限高」。小结报错关键字看后半句about_Execution_Policies→ 执行策略问题不是权限问题。一条命令解决Set-ExecutionPolicy -Scope CurrentUser RemoteSigned。改完记得新开窗口。不想动设置就用claude.cmd或换 Git Bash / cmd。参考about_Execution_Policieshttps://go.microsoft.com/fwlink/?LinkID135170