当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] PowerShell 执行策略 |执行政策范围和模式

作者:精品下载站 日期:2024-12-14 04:50:08 浏览:14 分类:玩电脑

PowerShell 执行策略 |执行政策范围和模式


[玩转系统] PowerShell 执行策略 |执行政策范围和模式

PowerShell执行策略简介

PowerShell执行策略是PowerShell环境的安全功能,它决定用户是否可以加载PowerShell配置文件、基本配置文件等配置文件或用户是否可以运行脚本。它还确定脚本在运行之前是否应该进行数字签名,而不是像 VBScript 那样允许任何用户运行脚本。 PowerShell 执行策略并不是阻止用户操作的核心安全功能,而是阻止恶意代码或脚本在环境中运行。用户可以使用命令行更改执行策略来运行脚本。

PowerShell 执行策略范围

应用执行策略时,它会应用于特定范围。下面提到了范围的优先级。

  • 机器政策
  • 用户政策
  • 进程(当前会话)
  • 当前用户
  • 本地机器

1. 机器政策

此策略由组策略为计算机的所有用户设置。可以通过 GPO 进行设置:计算机配置 -> 策略 -> 管理模板 -> Windows 组件 -> Windows PowerShell。

2. 用户政策

该策略可以通过计算机当前用户的组策略来设置。可以通过 GPO 设置:用户配置 -> 策略 -> 管理模板 -> Windows 组件 -> Windows PowerShell。

3.进程(当前会话)

此策略在 PowerShell 会话关闭之前一直有效,当会话关闭时此策略被删除。此策略在 Windows 环境变量 $Env: PSExecutionPolicyPreference 中设置。默认情况下,此变量不存在,仅在设置此策略时创建。

$env:PSExecutionPolicyPreference

[玩转系统] PowerShell 执行策略 |执行政策范围和模式

4. 当前用户

此策略仅适用于当前用户。设置此策略后,它将存储在注册表中

5. 本地机器

此策略是为本地计算机设置的。设置此策略后,它存储在注册表 HKEY_LOCAL_MACHINE 中

PowerShell 执行策略模式

以下是 PowerShell 执行策略模式:

1. 限制

这是 Windows 系统 PowerShell 的默认执行策略。这意味着您无法运行任何脚本 (.ps1)、配置文件 (.ps1xml) 和模块脚本 (.psm1),但可以运行 cmdlet。设置此模式并尝试运行脚本时,您将收到如下示例所示的错误。

[玩转系统] PowerShell 执行策略 |执行政策范围和模式

2. 全部签名

用户可以运行仅由受信任的发布者进行数字签名的脚本。未经数字签名的脚本,用户将收到提示。

3. 远程签名

从本地计算机运行的脚本不需要数字签名,但不应从互联网下载并运行。从互联网下载的脚本包括电子邮件应用程序和即时通讯应用程序,它们需要数字签名。如果文件未被阻止,PowerShell 可以运行从 Internet 下载的脚本,并且不会进行数字签名。可以使用 file 属性或通过 Unblock-File 取消阻止文件

4. 不受限制

用户可以运行未签名的脚本,但这也可以运行恶意脚本。当用户运行从互联网下载的脚本时,PowerShell 会发出警告。

5. 旁路

设置此执行策略后,任何脚本都不需要进行数字签名。用户不会收到运行未签名脚本的任何提示。当存在需要 PowerShell 作为基本模型并需要运行多个配置文件的大型应用程序时,这非常有用。通常不推荐使用此策略,因为设置此策略后很容易以 Windows 计算机为目标来运行恶意代码。

6. 未定义

当设置未定义的策略时,它将成为默认策略。默认策略将是 Restricted 为了删除当前的执行策略,通常会设置此策略。

实施 PowerShell 执行策略的示例

下面是一些提到的例子:

例子#1

获取机器上当前的执行策略

代码:

Get-ExecutionPolicy

输出:

[玩转系统] PowerShell 执行策略 |执行政策范围和模式

例子#2

要获取所有执行策略并检查哪个策略应用于您需要使用以下命令的范围。

代码:

Get-ExecutionPolicy -List

输出:

[玩转系统] PowerShell 执行策略 |执行政策范围和模式

说明:这里,根据上面示例的输出,绕过策略应用于当前会话(进程)范围。

例子#3

要获取特定范围的执行策略,您需要使用 -Scope 例如,要获取 Process 范围的执行策略,请使用以下命令。

代码:

Get-ExecutionPolicy -Scope Process

输出:

[玩转系统] PowerShell 执行策略 |执行政策范围和模式

同样,您可以为不同的范围设置策略。例如,

Get-ExecutionPolicy -Scope MachinePolicy
Get-ExecutionPolicy -Scope UserPolicy
Get-ExecutionPolicy -Scope CurrentPolicy

例子#4

设置执行策略,需要使用Set-Execution策略

代码:

Set-ExecutionPolicy RemoteSigned

当您设置没有任何范围的执行策略时,默认情况下将为本地计算机设置。

例子#5

使用 -Scope 设置执行策略

代码:

Set-ExecutionPolicy -Scope LocalMachine -ExecutionPolicy RemoteSigned
Set-ExecutionPolicy -Scope LocalMachine -ExecutionPolicy Restricted

例子#6

使用-Force 设置执行策略

设置执行策略时,PowerShell 会提示用户确认。为了避免此步骤,您需要使用 Force 参数。此参数直接将策略应用于特定范围或默认范围。

代码:

Set-ExecutionPolicy -Scope LocalMachine -ExecutionPolicy RemoteSigned -Force

例子#7

删除执行策略

要删除任何范围的执行策略,您需要使用未定义的策略。它将将该策略设置为默认值。即受限。

代码:

Set-ExecutionPolicy -Scope LocalMachine -ExecutionPolicy Undefined -Force
Set-ExecutionPolicy -Scope LocalMachine -ExecutionPolicy Undefined -Force

结论

PowerShell 执行策略是 Windows 系统安全性的关键组成部分,用于限制用户从控制台鲁莽地运行任何脚本。系统管理员可以使用组策略在大型Windows环境系统中部署执行策略,从而防止从Internet运行脚本和其他应用程序的意外运行。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯