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

[玩转系统] 获取执行策略 (Microsoft.PowerShell.Security)

作者:精品下载站 日期:2024-12-14 02:09:24 浏览:14 分类:玩电脑

获取执行策略 (Microsoft.PowerShell.Security)


Get-ExecutionPolicy

模块 :Microsoft.PowerShell.Security

获取当前会话的执行策略。

句法

Get-ExecutionPolicy
   [[-Scope] <ExecutionPolicyScope>]
   [-List]
   [<CommonParameters>]

描述

要按优先顺序显示每个范围的执行策略,请使用 Get-ExecutionPolicy -List。要查看 PowerShell 会话的有效执行策略,请使用不带参数的 Get-ExecutionPolicy

有效的执行策略由 Set-ExecutionPolicy 和组策略设置设置的执行策略决定。

有关更多信息,请参阅 about_Execution_Policies。

示例

示例1:获取所有执行策略

此命令按优先顺序显示每个范围的执行策略。

Get-ExecutionPolicy -List

Scope          ExecutionPolicy
-----          ---------------
MachinePolicy  Undefined
UserPolicy     Undefined
Process        Undefined
CurrentUser    AllSigned
LocalMachine   Undefined

Get-ExecutionPolicy cmdlet 使用List 参数来显示每个作用域的执行策略。

示例2:设置执行策略

此示例演示如何为本地计算机设置执行策略。

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine
Get-ExecutionPolicy -List

Scope ExecutionPolicy
        ----- ---------------
MachinePolicy       Undefined
   UserPolicy       Undefined
      Process       Undefined
  CurrentUser       AllSigned
 LocalMachine    RemoteSigned

Set-ExecutionPolicy cmdlet 使用ExecutionPolicy 参数指定RemoteSigned 策略。 Scope 参数指定默认范围值 LocalMachine。要查看执行策略设置,请使用带有 List 参数的 Get-ExecutionPolicy cmdlet。

示例3:获取有效的执行策略

此示例演示如何显示 PowerShell 会话的有效执行策略。

PS> Get-ExecutionPolicy -List

        Scope ExecutionPolicy
        ----- ---------------
MachinePolicy       Undefined
   UserPolicy       Undefined
      Process       Undefined
  CurrentUser       AllSigned
 LocalMachine    RemoteSigned

PS> Get-ExecutionPolicy

AllSigned

Get-ExecutionPolicy cmdlet 使用List 参数来显示每个作用域的执行策略。 Get-ExecutionPolicy cmdlet 在不带参数的情况下运行,以显示有效的执行策略 AllSigned

示例 4:取消阻止脚本以在不更改执行策略的情况下运行它

此示例显示 RemoteSigned 执行策略如何阻止您运行未签名的脚本。

最佳实践是在使用 Unblock-File cmdlet 之前读取脚本代码并验证其安全性。 Unblock-File cmdlet 取消阻止脚本,以便它们可以运行,但不会更改执行策略。

PS> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine

PS> Get-ExecutionPolicy

RemoteSigned

PS> .\Start-ActivityTracker.ps1

.\Start-ActivityTracker.ps1 : File .\Start-ActivityTracker.ps1 cannot be loaded.
The file .\Start-ActivityTracker.ps1 is not digitally signed.
The script will not execute on the system.
For more information, see about_Execution_Policies at https://go.microsoft.com/fwlink/?LinkID=135170.
At line:1 char:1
+ .\Start-ActivityTracker.ps1
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : NotSpecified: (:) [], PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess

PS> Unblock-File -Path .\Start-ActivityTracker.ps1

PS> Get-ExecutionPolicy

RemoteSigned

PS> .\Start-ActivityTracker.ps1

Task 1:

Set-ExecutionPolicy 使用ExecutionPolicy 参数指定RemoteSigned 策略。该策略是为默认范围 LocalMachine 设置的。

Get-ExecutionPolicy cmdlet 显示 RemoteSigned 是当前 PowerShell 会话的有效执行策略。

Start-ActivityTracker.ps1 脚本从当前目录执行。该脚本被 RemoteSigned 阻止,因为该脚本未经过数字签名。

对于此示例,脚本的代码经过审查并验证为可以安全运行。 Unblock-File cmdlet 使用Path 参数来取消阻止脚本。

为了验证 Unblock-File 没有更改执行策略,Get-ExecutionPolicy 显示有效的执行策略 RemoteSigned

脚本 Start-ActivityTracker.ps1 从当前目录执行。该脚本开始运行,因为它已被 Unblock-File cmdlet 解除阻止。

参数

-List

获取会话的所有执行策略值。默认情况下,Get-ExecutionPolicy 仅获取有效的执行策略。

类型 :

SwitchParameter

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-Scope

指定受执行策略影响的范围。

有效的执行策略由优先顺序决定,如下:

  • 机器策略。由组策略为计算机的所有用户设置。
  • 用户策略。由计算机当前用户的组策略设置。
  • 处理。仅影响当前的 PowerShell 会话。
  • 本地机器。影响计算机所有用户的默认范围。
  • 当前用户。仅影响当前用户。
类型 :

执行策略范围

接受的值:

当前用户、本地机器、机器策略、进程、用户策略

位置:

0

默认值:

有效的执行政策

必需的:

False

接受管道输入:

True

接受通配符:

False

输入

您无法将对象通过管道传输到此 cmdlet。

输出

执行策略

在 Linux 和 macOS 平台上,cmdlet 始终返回Unrestricted。在 Windows 平台上,它返回当前的执行策略。

笔记

执行策略是 PowerShell 安全策略的一部分。执行策略确定您是否可以加载配置文件(例如 PowerShell 配置文件)或运行脚本。并且,脚本在运行之前是否必须进行数字签名。

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

取消回复欢迎 发表评论:

关灯