PowerShell 中的 ExecutionPolicy Bypass 和 Unrestricted

Migel Hewage Nimesha 2023年1月30日
  1. PowerShell 执行策略
  2. 自定义执行策略
  3. PowerShell Bypass 策略
  4. PowerShell Unrestricted 策略
PowerShell 中的 ExecutionPolicy Bypass 和 Unrestricted

本文介绍 PowerShell 中的执行策略 BypassUnrestricted

PowerShell 执行策略

PowerShell 是系统管理员、安全测试和黑客中最流行的脚本语言之一。Windows 是最流行的计算机操作系统。

因此,数以百万计的用户正在使用它。因此,PowerShell 用于自动化工作流程、调用 Windows API 和编写渗透测试工具。

由于 Windows 用户众多,微软采取措施添加了一些内置的安全功能。引入执行策略来确定可以在系统上执行哪种类型的 PowerShell 脚本。

这并不意味着用户被限制执行某些 PowerShell 脚本。因此,执行策略可以防止意外的脚本执行。

BypassUnrestricted 是两个重要的执行策略。这两个策略的行为非常相似。

自定义执行策略

PowerShell 用户可以轻松更改现有策略。Set-ExecutionPolicy cmdlet 用于自定义 PowerShell 执行策略。

语法:

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

-ExecutionPolicy 参数指定 PowerShell 执行策略,例如 BypassUnrestricted。此外,-Scope 标志可以给出策略范围,如 ProcessCurrentUserLocalMachine

PowerShell Bypass 策略

Bypass 策略用于跳过所有 Windows PowerShell 安全检查。风险是绕过策略允许你在没有警告或提示的情况下运行任何 PowerShell 脚本。

因此,用户在使用 Bypass 策略时需要小心。通常,我们将此策略用于包含其安全模型的应用程序。

Bypass 执行策略可以如下所示建立。

Set-ExecutionPolicy -ExecutionPolicy Bypass

输出:

PowerShell bypass 策略

由于它允许你执行任何 PowerShell 脚本,因此 PowerShell 会警告你,因为恶意脚本可能会无意中运行并损害你的私人数据。你需要以管理员权限运行 PowerShell 才能更改执行策略。

我们可以使用 Get-ExecutionPolicy cmdlet 确认策略更改。

Get-ExecutionPolicy -List

输出:

ExecutionPolicy 绕过列表

策略更改影响了 LocalMachine 范围。

PowerShell Unrestricted 策略

Unrestricted 策略类似于 Bypass 策略。主要区别在于 Unrestricted 策略会在执行未签名脚本之前警告你并要求正确的权限。

你可以使用 Set-ExecutionPolicy cmdlet 设置此执行策略。

Set-ExecutionPolicy -ExecutionPolicy Unrestricted

输出:

PowerShell 不受限制的策略

我们可以使用 Get-ExecutionPolicy cmdlet 确认上述更改。

输出:

ExecutionPolicy 无限制列表

Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.