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

右键“用PowerShell运行”脚本报错,直接运行无异常的技术咨询

问题分析与解决方案

1. 右键“用PowerShell运行”的实际行为

Windows资源管理器中右键.ps1文件选择“用PowerShell运行”时,默认执行的命令是:

powershell.exe -Command "Set-ExecutionPolicy RemoteSigned -Scope Process -Force; & '%1'"

它会先尝试将Process作用域的执行策略设为RemoteSigned,但你的MachinePolicy已经是Unrestricted(优先级更高),导致这个设置被覆盖,从而弹出你看到的提示——但脚本本身仍会继续执行,所以你能成功创建目录。

2. PowerShell执行策略的优先级(从高到低)

  • MachinePolicy:由组策略为计算机所有用户设置,优先级最高
  • UserPolicy:由组策略为当前用户设置
  • Process:仅对当前PowerShell进程有效,关闭进程后失效
  • CurrentUser:仅对当前用户生效
  • LocalMachine:对计算机所有用户生效,优先级最低

你的Get-ExecutionPolicy -List输出显示MachinePolicy和LocalMachine都是Unrestricted,所以任何更低优先级的执行策略设置都会被MachinePolicy覆盖。

3. 无权限修改右键菜单时的解决方法

方案1:创建脚本快捷方式

  1. 右键.ps1脚本,选择“创建快捷方式”
  2. 右键快捷方式,选择“属性”
  3. 在“目标”栏中,将原内容替换为:
powershell.exe -NoProfile -ExecutionPolicy Bypass -File "C:\完整路径\你的脚本.ps1"
  • -NoProfile:跳过PowerShell配置文件加载,加快启动速度
  • -ExecutionPolicy Bypass:直接绕过执行策略检查,不会触发右键默认的Set-ExecutionPolicy操作
  1. 点击“确定”,之后双击这个快捷方式就能干净运行脚本,无报错

方案2:使用Shift+右键的“在此处打开PowerShell窗口”

  1. 按住Shift键,右键脚本所在文件夹,选择“在此处打开PowerShell窗口”
  2. 在窗口中输入.\脚本名.ps1运行,这种方式和你手动打开PowerShell运行效果一致,不会触发额外的执行策略设置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 19:18:18