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.