PowerShell脚本执行被禁因执行策略为Restricted,可通过Get-ExecutionPolicy -List查看;推荐用Set-ExecutionPolicy RemoteSigned -Scope CurrentUser(无需管理员权限)或临时使用Bypass策略运行单个脚本。

电脑运行PowerShell脚本时提示“无法加载文件,因为在此系统中禁止执行脚本”,说明当前执行策略(Execution Policy)处于Restricted或被更高优先级策略锁定状态,本地编写的.ps1文件被默认拦截,哪怕脚本完全来自可信路径也无法运行。
快速验证当前策略状态
以任意权限打开PowerShell窗口,直接输入:
Get-ExecutionPolicy -List
重点看最后一行LocalMachine和倒数第二行CurrentUser的值。如果两者都显示Restricted,说明本地策略未被修改;若UserPolicy或MachinePolicy显示RemoteSigned但CurrentUser是Undefined,说明你正处在域控环境,本地命令可能无效——【此时跳过后续所有Set-ExecutionPolicy命令,改用组策略或联系IT管理员】。
仅对当前用户放开限制(推荐首选)
此方法无需管理员权限,不改动系统级设置,只影响你登录的这个账户,安全性高且可逆。
第一步:打开普通PowerShell(不用右键→“以管理员身份运行”)
第二步:执行命令:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
第三步:出现确认提示时,输入Y并回车
第四步:立即验证:
Get-ExecutionPolicy -Scope CurrentUser
输出必须为RemoteSigned才算成功
临时绕过策略运行单个脚本
当你只有一次运行需求、不想改任何策略、也没有管理员权限时,用这个方法最直接。
方法一:在CMD或文件资源管理器地址栏中直接调用
powershell -ExecutionPolicy Bypass -File "C:\your\script.ps1"
方法二:在已打开的PowerShell窗口中执行
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process
然后紧接着运行你的脚本,例如 .\deploy.ps1
注意:Process作用域仅对当前窗口生效,关闭窗口后自动还原,下次打开仍需重复执行该命令。
永久解除本机所有用户限制(需管理员权限)
适用于你完全掌控这台电脑、且需要让其他账户也能运行本地脚本的场景。操作不可逆,除非手动重置。
① 右键“开始”按钮 → 选择“Windows PowerShell(管理员)” → 点击“是”确认UAC弹窗
② 输入命令:
Set-ExecutionPolicy RemoteSigned -Scope LocalMachine
③ 输入Y确认
④ 运行Get-ExecutionPolicy -List,确认LocalMachine一栏已变为RemoteSigned
⑤ 【关键提醒:若之后安装某些企业安全软件或加入域,该设置可能被强制覆盖】

















