PowerShell 中的 ExecutionPolicy Bypass 和 Unrestricted
本文介绍 PowerShell 中的执行策略 Bypass
和 Unrestricted
。
PowerShell 执行策略
PowerShell 是系统管理员、安全测试和黑客中最流行的脚本语言之一。Windows 是最流行的计算机操作系统。
因此,数以百万计的用户正在使用它。因此,PowerShell 用于自动化工作流程、调用 Windows API 和编写渗透测试工具。
由于 Windows 用户众多,微软采取措施添加了一些内置的安全功能。引入执行策略来确定可以在系统上执行哪种类型的 PowerShell 脚本。
这并不意味着用户被限制执行某些 PowerShell 脚本。因此,执行策略可以防止意外的脚本执行。
Bypass
和 Unrestricted
是两个重要的执行策略。这两个策略的行为非常相似。
自定义执行策略
PowerShell 用户可以轻松更改现有策略。Set-ExecutionPolicy
cmdlet 用于自定义 PowerShell 执行策略。
语法:
Set-ExecutionPolicy
[-ExecutionPolicy] <ExecutionPolicy>
[[-Scope] <ExecutionPolicyScope>]
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
-ExecutionPolicy
参数指定 PowerShell 执行策略,例如 Bypass
和 Unrestricted
。此外,-Scope
标志可以给出策略范围,如 Process
、CurrentUser
或 LocalMachine
。
PowerShell Bypass
策略
Bypass
策略用于跳过所有 Windows PowerShell 安全检查。风险是绕过
策略允许你在没有警告或提示的情况下运行任何 PowerShell 脚本。
因此,用户在使用 Bypass
策略时需要小心。通常,我们将此策略用于包含其安全模型的应用程序。
Bypass
执行策略可以如下所示建立。
Set-ExecutionPolicy -ExecutionPolicy Bypass
输出:
由于它允许你执行任何 PowerShell 脚本,因此 PowerShell 会警告你,因为恶意脚本可能会无意中运行并损害你的私人数据。你需要以管理员权限运行 PowerShell 才能更改执行策略。
我们可以使用 Get-ExecutionPolicy
cmdlet 确认策略更改。
Get-ExecutionPolicy -List
输出:
策略更改影响了 LocalMachine
范围。
PowerShell Unrestricted
策略
Unrestricted
策略类似于 Bypass
策略。主要区别在于 Unrestricted
策略会在执行未签名脚本之前警告你并要求正确的权限。
你可以使用 Set-ExecutionPolicy
cmdlet 设置此执行策略。
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
输出:
我们可以使用 Get-ExecutionPolicy
cmdlet 确认上述更改。
输出:
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.