约 2071 字

约 10 分钟

#PowerShell 的 Set-ExecutionPolicy 命令

Set-ExecutionPolicy
    [-ExecutionPolicy] <ExecutionPolicy>
    [[-Scope] <ExecutionPolicyScope>]
    [-Force]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

功能

设置当前会话或指定作用域的执行策略。

类型

Cmdlet,属于 Microsoft.PowerShell.Security。

参数

  • [-ExecutionPolicy] <ExecutionPolicy> - 要设置的执行策略;位置 0,可用值:
    • Restricted - 不加载配置文件,也不运行脚本
    • AllSigned - 只运行由受信任发布者签名的脚本
    • RemoteSigned - 本地脚本可运行,从 Internet 下载的脚本必须签名
    • Unrestricted - 运行所有脚本,下载的未签名脚本运行前会提示
    • Bypass - 不阻止任何内容,也不提示
    • Undefined - 移除当前作用域的策略设置
    • Default - 恢复系统默认策略
  • [[-Scope] <ExecutionPolicyScope>] - 策略作用域,可用 Process、CurrentUser、LocalMachine、UserPolicy、MachinePolicy
  • -Force - 取消所有确认提示
  • -WhatIf - 显示将要执行的操作,但不实际执行
  • -Confirm - 执行前提示确认

#示例

为当前用户设置执行策略

> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
  • 只影响当前用户,不需要管理员权限,是最常用的设置方式。

仅对当前会话生效

> Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process
  • Process 作用域在会话结束后自动失效,适合临时运行脚本。

为所有用户设置

> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine
  • 修改 LocalMachine 通常需要以管理员身份运行 PowerShell。

预演修改操作

> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser -WhatIf
  • -WhatIf 只显示将要发生的更改,不会真正修改策略。

恢复默认设置

> Set-ExecutionPolicy -ExecutionPolicy Undefined -Scope CurrentUser
  • Undefined 表示移除该作用域的显式设置,使有效策略回退到其他作用域。

#推荐阅读

更新: 2026/11/2

作者: planc

创建: 2026/11/2