#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覆盖。
#示例
为当前用户设置执行策略
> 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表示移除该作用域的显式设置,使有效策略回退到其他作用域。