HOWTO · PowerShell

PowerShell での ExecutionPolicy Bypass と Unrestricted の比較

セキュリティ対策として提供されている PowerShell 実行ポリシーがあります。Bypass と Unrestricted は、ほとんどすべてのセキュリティチェックをスキップして任意のスクリプトを実行するために使用できる 2つの重要なポリシーです。

このページの内容

この記事では、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 Bypass ポリシー

PowerShell スクリプトを実行できるため、悪意のあるスクリプトが意図せずに実行され、プライベートデータに損害を与える可能性があるため、PowerShell は警告を表示します。実行ポリシーを変更するには、管理者権限で PowerShell を実行する必要があります。

ポリシーの変更は、Get-ExecutionPolicy コマンドレットを使用して確認できます。

Get-ExecutionPolicy -List

出力:

ExecutionPolicy Bypass スリスト

ポリシーの変更は、LocalMachine スコープに影響します。

PowerShell Unrestricted ポリシー

Unrestricted ポリシーは、Bypass ポリシーに似ています。主な違いは、Unrestricted ポリシーは、署名されていないスクリプトを実行する前に、警告を表示し、正しいアクセス許可を要求することです。

この実行ポリシーは、Set-ExecutionPolicy コマンドレットを使用して設定できます。

Set-ExecutionPolicy -ExecutionPolicy Unrestricted

出力:

PowerShell Unrestricted ポリシー

上記の変更は、Get-ExecutionPolicy コマンドレットで確認できます。

出力:

ExecutionPolicy Unrestricted リスト