如何将PowerShell执行策略恢复为Restricted?权限受阻求解
解决PowerShell执行策略无法恢复为Restricted的问题
一、先排查覆盖策略的作用域
首先运行以下命令查看所有作用域的执行策略设置,找到优先级更高的覆盖项:
Get-ExecutionPolicy -List
输出会显示不同作用域的策略,优先级从高到低为:MachinePolicy > UserPolicy > Process > CurrentUser > LocalMachine,当前生效的策略是优先级最高的那一项。
二、针对性修改对应作用域的策略
1. 普通作用域(CurrentUser/LocalMachine)
如果是CurrentUser或LocalMachine作用域被设为Bypass,以管理员身份打开PowerShell,运行对应命令:
- 修改当前用户策略:
Set-ExecutionPolicy Restricted -Scope CurrentUser -Force
- 修改本地机器策略:
Set-ExecutionPolicy Restricted -Scope LocalMachine -Force
2. 组策略作用域(MachinePolicy/UserPolicy)
如果输出里MachinePolicy或UserPolicy是Bypass,说明是组策略强制设置的,需要通过组策略编辑器修改:
- 按下Win+R,输入
gpedit.msc打开组策略编辑器 - 导航到:计算机配置 → 管理模板 → Windows组件 → Windows PowerShell
- 找到「启用脚本执行」选项,设置为「已禁用」(对应Restricted策略),点击确定后重启PowerShell生效。
3. 临时会话策略(Process)
如果是Process作用域为Bypass,这是当前会话的临时设置,关闭PowerShell重新打开后就会自动恢复为其他作用域的策略,无需额外操作。
三、是否需要恢复为Restricted策略?
Restricted是最严格的PowerShell执行策略,完全禁止运行任何脚本,仅支持交互命令操作:
- 如果不需要运行任何PowerShell脚本(包括Chocolatey相关脚本),恢复为Restricted是安全的选择。
- 如果之后还要使用Chocolatey或合法的PowerShell脚本,建议设置为AllSigned(仅运行经过数字签名的脚本)或RemoteSigned(本地脚本可运行,远程下载的脚本需签名),这两个策略在安全性和实用性之间更平衡。
内容的提问来源于stack exchange,提问作者Rifat
相关产品推荐
相关产品推荐

