报错因执行策略为restricted,需设为remotesigned;推荐用set-executionpolicy remotesigned -scope currentuser(无需管理员权限);临时测试可用powershell -executionpolicy bypass -file。

你在Win11上运行PowerShell脚本时看到“无法加载文件,因为在此系统上禁止运行脚本”报错,说明系统执行策略(Execution Policy)当前为Restricted或更严格状态,它直接拦截所有.ps1脚本的加载——哪怕脚本就放在你自己的桌面上,哪怕内容只有一行Write-Host "Hello"。
确认当前执行策略
打开任意PowerShell窗口(无需管理员权限),直接输入:
Get-ExecutionPolicy
如果返回Restricted,就是问题根源;若返回Undefined,说明该作用域未显式设置,实际生效的是上级策略(如LocalMachine),仍需继续排查。
推荐方案:仅对当前用户启用本地脚本
这一步最安全、最常用,不需管理员权限,不影响其他账户,且允许你运行自己写的.ps1和npm.ps1这类开发工具脚本。
在当前出错的PowerShell窗口中,直接执行:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
输入Y回车确认。执行后立即生效,无需重启PowerShell——你马上就能重新运行刚才失败的脚本。
【注意】RemoteSigned策略允许你本地创建的脚本无条件运行,但会拒绝未签名的网络下载脚本(比如从GitHub直接wget下来的.ps1),这是微软默认的安全边界,不要随意改成Unrestricted。
备用方案:临时绕过当前会话限制
当你只是想快速测试一个脚本,又不想永久修改任何策略,用这个方法最干净。
方法一:以管理员身份打开PowerShell → 输入:
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process → 回车 → 再运行你的脚本(如.\loadGAC.ps1)
方法二:直接在普通PowerShell中运行带策略参数的脚本:
powershell -ExecutionPolicy Bypass -File ".\loadGAC.ps1"
两种方式都只影响当前窗口,关闭即失效,适合一次性调试或CI/CD临时任务。
进阶方案:修改系统级策略(需管理员权限)
第一步:按Win + X → 选择「Windows Terminal(管理员)」或「Windows PowerShell(管理员)」→ 点击「是」通过UAC提示
第二步:执行命令:
Set-ExecutionPolicy RemoteSigned -Scope LocalMachine
第三步:输入Y确认
第四步:运行Get-ExecutionPolicy -List查看各作用域策略,确认LocalMachine行显示RemoteSigned
这会让所有用户(包括新创建的账户)默认可运行本地脚本,常见于企业IT统一部署或开发机初始化场景。但普通个人电脑不建议优先选此项,因它需要持续维持管理员权限写入注册表。











