powershell脚本运行被阻止是因执行策略限制,可临时绕过、设为currentuser remotesigned(推荐)、localmachine remotesigned(需管理员)、bypass单次执行或恢复restricted默认策略。

如果您在PowerShell中运行脚本时收到“无法加载文件,因为在此系统上禁止运行脚本”的错误提示,则说明当前执行策略(Execution Policy)阻止了脚本运行。以下是解除该限制的多种方法:
一、临时绕过执行策略(仅当前会话有效)
此方法不修改系统策略,仅在当前PowerShell窗口中禁用策略检查,适用于快速测试脚本且无需持久更改的场景。
1、以管理员身份或普通用户身份打开PowerShell。
2、输入以下命令并按回车执行:Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force
3、验证是否生效:输入 Get-ExecutionPolicy -List,确认 CurrentUser 行显示为 RemoteSigned。
二、修改当前用户的执行策略(推荐日常使用)
该方式将策略作用范围限定在当前Windows用户下,不影响其他用户,也无需管理员权限即可设置(部分策略需管理员权限,但CurrentUser + RemoteSigned通常可免提权)。
1、启动PowerShell(无需管理员权限)。
2、运行命令:Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
3、当提示是否更改时,输入 Y 并回车确认。
4、执行 Get-ExecutionPolicy -Scope CurrentUser 查看结果,应返回 RemoteSigned。
三、修改本地计算机策略(需管理员权限)
此方法将策略应用于本机所有用户,适用于统一管理环境,但必须以管理员身份运行PowerShell才能执行。
1、右键单击“开始”菜单,选择“Windows PowerShell(管理员)”。
2、输入命令:Set-ExecutionPolicy RemoteSigned -Scope LocalMachine
3、按提示输入 Y 确认更改。
4、运行 Get-ExecutionPolicy -Scope LocalMachine 验证输出是否为 RemoteSigned。
四、使用Bypass策略临时运行单个脚本
Bypass策略完全跳过执行策略检查,仅适用于一次性执行可信脚本,不建议设为默认策略,因其不提供任何脚本安全防护。
1、在PowerShell中直接调用脚本时附加执行策略参数:PowerShell -ExecutionPolicy Bypass -File "C:\path\to\script.ps1"
2、确保脚本路径使用英文引号包裹,且路径中不含未转义的特殊字符。
3、该命令执行完毕后,当前PowerShell会话的策略不受影响,仍保持原有设置。
五、还原为默认受限策略
若已修改策略并希望恢复系统初始状态(即AllSigned或Undefined),可通过重置为默认值实现。Windows默认策略通常为Restricted(受限),尤其在企业域环境中可能被组策略锁定。
1、以管理员身份打开PowerShell。
2、执行命令:Set-ExecutionPolicy Restricted -Scope LocalMachine -Force
3、若提示策略由组策略定义,则需检查 gpedit.msc 中“计算机配置 → 管理模板 → Windows组件 → Windows PowerShell”下的“启用脚本执行”设置。










