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.