windows 11中需设置executionpolicy为remotesigned才能运行.ps1脚本,推荐以管理员身份执行set-executionpolicy remotesigned -scope localmachine并确认y;该策略允许本地脚本无签名运行,仅要求网络脚本签名,兼顾安全与实用性。

在Windows 11中运行PowerShell脚本前,必须解除系统默认的脚本执行限制,否则双击.ps1文件或输入.路径执行时会直接报错“无法加载文件,因为在此系统上禁止运行脚本”,这个限制由Set-ExecutionPolicy命令控制,RemoteSigned是最常用且兼顾安全与可用性的策略。
理解ExecutionPolicy的5种模式
执行策略不是开关,而是分级许可规则。运行Get-ExecutionPolicy可查看当前生效策略;不同作用域(MachinePolicy、UserPolicy、Process、CurrentUser、LocalMachine)可能叠加,实际生效的是优先级最高的那个。
Restricted:默认值,彻底禁用脚本,连本地.txt改名成.ps1都不让执行。
AllSigned:所有脚本(含本地)都必须有可信证书签名,普通用户几乎无法使用。
RemoteSigned:本地脚本无需签名,从网络下载的.ps1必须带有效签名——这是绝大多数用户的真实需求,Win11Debloat、DG_Readiness_Tool等开源脚本都依赖此策略运行。
Unrestricted:允许所有脚本,但会弹出安全警告,风险明显升高。
Bypass:完全绕过策略检查,常用于任务计划程序中临时调用脚本,不建议日常设为全局策略。
以管理员身份设置RemoteSigned(推荐方式)
第一步:按Win+X,选择“Windows PowerShell(管理员)”或“终端(管理员)”。若看到“已禁用”提示,说明你点错了普通终端,必须选带“管理员”字样的入口。
第二步:输入命令并回车:Set-ExecutionPolicy RemoteSigned -Scope LocalMachine。
第三步:出现确认提示时,输入【Y】并回车——这一步不可跳过,输A或直接回车无效,必须明确键入Y。
注意:-Scope LocalMachine会让策略对本机所有用户生效,比仅设CurrentUser更彻底,避免切换账户后脚本又失效。
非管理员权限下启用RemoteSigned(应急方案)
方法一:仅对当前用户启用(无需管理员权限)
在任意PowerShell窗口中执行:Set-ExecutionPolicy RemoteSigned -Scope CurrentUser → 输入Y确认。
方法二:若上一步报错“拒绝访问”,说明组策略已锁定执行策略(常见于企业域环境),此时只能改用Process作用域:Set-ExecutionPolicy RemoteSigned -Scope Process → 该设置仅对当前PowerShell进程有效,关闭窗口即失效,适合单次调试。
方法三:绕过策略直接运行单个脚本(不修改全局设置)
在命令行中输入:powershell.exe -ExecutionPolicy Bypass -File "C:\path\to\script.ps1" → 此方式跳过检查,但不能用于.路径这种相对路径调用,必须写完整绝对路径。
验证与还原执行策略
① 验证是否生效:在PowerShell中运行Get-ExecutionPolicy -List,检查LocalMachine或CurrentUser行是否显示RemoteSigned。
② 若需还原为默认限制:执行Set-ExecutionPolicy Restricted -Scope LocalMachine → 输入Y确认。
③ 检查脚本能否真正运行:新建test.ps1,内容为Write-Host "OK",保存为UTF-8无BOM编码,然后在同目录下执行.\test.ps1 —— 成功打印OK即表示策略已正确应用。











