powershell执行策略默认为restricted,需通过五种方法之一启用脚本运行:一、管理员权限设currentuser为remotesigned;二、临时会话级设置;三、组策略编辑器配置;四、修改profile.ps1自动应用;五、注册表覆盖。

如果您在Windows 11中尝试运行PowerShell脚本或激活Conda环境时,遇到“无法加载文件…因为在此系统上禁止运行脚本”的报错,则极大概率是PowerShell执行策略处于默认的严格限制状态。以下是针对该问题的多种可行设置方法:
一、使用管理员权限修改本地执行策略
此方法直接修改当前用户的PowerShell会话策略,影响范围为当前用户的所有PowerShell窗口,操作简单且生效迅速。
1、右键点击“开始”菜单,选择“Windows Terminal(管理员)”或“Windows PowerShell(管理员)”。
2、在弹出的UAC提示中点击“是”,确认以管理员身份运行。
3、输入命令:Get-ExecutionPolicy,按回车确认当前策略状态。
4、若返回结果为Restricted,则执行命令:Set-ExecutionPolicy RemoteSigned -Scope CurrentUser。
5、当提示是否更改执行策略时,输入Y并按回车确认。
二、仅对当前会话临时启用脚本执行
该方法不修改系统或用户级持久策略,仅在本次PowerShell窗口生命周期内允许脚本运行,适用于临时调试或一次性任务,安全性高且无残留影响。
1、打开任意PowerShell窗口(无需管理员权限)。
2、输入命令:Set-ExecutionPolicy RemoteSigned -Scope Process,按回车执行。
3、立即验证效果:运行一个本地.ps1脚本,例如.\test.ps1。
4、关闭该PowerShell窗口后,策略自动恢复为原始状态,不影响其他会话。
三、通过组策略编辑器配置企业级策略(需专业版/企业版)
此方式适用于IT管理员或拥有Windows 11专业版及以上系统的用户,通过组策略统一管控执行策略,避免逐台手动设置,策略变更对所有用户生效且不易被普通用户绕过。
1、按下Win + R,输入gpedit.msc,按回车打开本地组策略编辑器。
2、依次展开路径:计算机配置 → 管理模板 → Windows组件 → Windows PowerShell。
3、双击右侧的“关闭PowerShell脚本执行”策略项。
4、选择“已禁用”,点击“确定”保存设置。
5、再双击“设置PowerShell执行策略”,启用该策略,并在下拉框中选择RemoteSigned。
6、关闭组策略编辑器,在PowerShell中运行gpupdate /force强制刷新策略。
四、修改当前用户的PowerShell配置文件(profile.ps1)
该方法不改变全局执行策略,而是将策略设置嵌入用户专属的启动脚本中,每次启动PowerShell时自动执行,适合希望保持策略灵活性又不愿频繁输入命令的进阶用户。
1、在PowerShell中运行:$PROFILE,确认profile.ps1文件路径。
2、若路径对应文件不存在,执行:New-Item -Path $PROFILE -Type File -Force创建空文件。
3、用记事本或VS Code打开该文件,添加一行:Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force。
4、保存文件,关闭并重新打开PowerShell窗口,策略即自动应用。
5、可通过运行Get-ExecutionPolicy -Scope CurrentUser验证是否生效。
五、使用注册表方式绕过策略限制(高级用户适用)
此方法通过注册表键值覆盖PowerShell启动时读取的策略来源,适用于组策略被域控锁定、无法使用gpedit.msc等受限环境,但需谨慎操作,错误修改可能影响系统稳定性。
1、按下Win + R,输入regedit,按回车打开注册表编辑器。
2、导航至路径:HKEY_CURRENT_USER\Software\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell。
3、在右侧空白处右键,选择“新建 → 字符串值”,命名为ExecutionPolicy。
4、双击该新建项,将其值数据设为:RemoteSigned。
5、关闭注册表编辑器,重启PowerShell,策略即按注册表值生效。











