PowerShell での ExecutionPolicy Bypass と Unrestricted の比較
![PowerShell での ExecutionPolicy Bypass と Unrestricted の比較](/img/PowerShell/feature-image---powershell-executionpolicy-bypass-vs-unrestricted.webp)
この記事では、PowerShell、Bypass
および Unrestricted
の実行ポリシーを紹介します。
PowerShell 実行ポリシー
PowerShell は、システム管理者、セキュリティテスト、およびハッカーの間で最も人気のあるスクリプト言語の 1つです。Windows は、コンピューターで最も人気のあるオペレーティングシステムです。
したがって、何百万ものユーザーがそれを使用しています。したがって、PowerShell は、ワークフローの自動化、Windows API の呼び出し、および侵入テストツールの作成に使用されます。
多くの Windows ユーザーがいるため、Microsoft はいくつかの組み込みのセキュリティ機能を追加するための対策を講じました。実行ポリシーは、システムで実行できる PowerShell スクリプトのタイプを決定するために導入されています。
ユーザーが特定の PowerShell スクリプトの実行を制限されているわけではありません。したがって、実行ポリシーは、意図しないスクリプトの実行を防ぎます。
Bypass
と Unrestricted
は、2つの重要な実行ポリシーです。これらの 2つのポリシーは、まったく同じ動作をしました。
実行ポリシーをカスタマイズする
PowerShell ユーザーは、既存のポリシーを簡単に変更できます。Set-ExecutionPolicy
コマンドレットは、PowerShell 実行ポリシーをカスタマイズするために使用されます。
構文:
Set-ExecutionPolicy
[-ExecutionPolicy] <ExecutionPolicy>
[[-Scope] <ExecutionPolicyScope>]
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
-ExecutionPolicy
パラメータは、Bypass
や Unrestricted
などの PowerShell 実行ポリシーを指定します。また、-Scope
フラグは、Process
、CurrentUser
、LocalMachine
などのポリシースコープを指定できます。
PowerShell Bypass
ポリシー
Bypass
ポリシーは、すべての Windows PowerShell セキュリティチェックをスキップするために使用されます。リスクは Bypass
ポリシーであり、警告やプロンプトなしで任意の PowerShell スクリプトを実行できます。
したがって、ユーザーは Bypass
ポリシーを使用する際に注意する必要があります。通常、このポリシーは、セキュリティモデルを含むアプリケーションに使用されます。
Bypass
実行ポリシーは、以下のように設定できます。
Set-ExecutionPolicy -ExecutionPolicy Bypass
出力:
PowerShell スクリプトを実行できるため、悪意のあるスクリプトが意図せずに実行され、プライベートデータに損害を与える可能性があるため、PowerShell は警告を表示します。実行ポリシーを変更するには、管理者権限で PowerShell を実行する必要があります。
ポリシーの変更は、Get-ExecutionPolicy
コマンドレットを使用して確認できます。
Get-ExecutionPolicy -List
出力:
ポリシーの変更は、LocalMachine
スコープに影響します。
PowerShell Unrestricted
ポリシー
Unrestricted
ポリシーは、Bypass
ポリシーに似ています。主な違いは、Unrestricted
ポリシーは、署名されていないスクリプトを実行する前に、警告を表示し、正しいアクセス許可を要求することです。
この実行ポリシーは、Set-ExecutionPolicy
コマンドレットを使用して設定できます。
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
出力:
上記の変更は、Get-ExecutionPolicy
コマンドレットで確認できます。
出力:
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.