【PowerShell】実行ポリシーとスコープの一覧


この記事はプロモーションを含みます。

PowerShell

ホーム > PowerShell 逆引きリファレンス

PowerShellで使用可能な、実行ポリシーとスコープについて解説します。

はじめに・実行ポリシーとは

本記事では、PowerShellで使用可能な実行ポリシーとスコープについて説明しています。

まず、実行ポリシーについてですが、
PowerShellにおける実行ポリシーとは、PowerShellが構成ファイルを読み込み、スクリプトの実行を制御する機能です。
この機能は、悪意のあるスクリプトの実行を防止するために導入されています。

実行ポリシーについて

ここでは、実行ポリシーについて説明しています。

実行ポリシーの一覧

実行ポリシーの一覧です。

ポリシー説明
AllSignedスクリプトの実行は可能ですが、ローカルコンピューターで作成されたスクリプトを含めて、全てのスクリプトと構成ファイルが信頼されている発行元によって署名されている必要があります。
Bypass何もブロックされず、警告やプロンプトは表示されません。
この実行ポリシーは、PowerShellスクリプトを大規模なアプリケーションに組み込んだり、PowerShellが独自のセキュリティ機能を持つような構成用に用意されています。
Default既定の実行ポリシーを設定します。Windows10の既定値は「Restricted」です。
RemoteSignedインターネットからダウンロードされた全てのスクリプトと構成ファイルが信頼されている発行元によって署名されている必要があります。
WindowsServerの既定の実行ポリシーです。
Restricted個々のコマンドは許可しますが、構成ファイルの読み込みやスクリプト(.ps1/.ps1xml/.psm1)の実行を行いません。
Windowsクライアントの既定の実行ポリシーです。
Undefined現在のスコープに割り当てられている実行ポリシーを削除します。
グループポリシースコープ内で設定された実行ポリシーは削除しません。
全ての実行ポリシーが、Undefinedとなる場合は、実行ポリシーは、Restrictedとなります。
Unrestricted全ての構成ファイルの読み込みやスクリプトを実行します。
インターネットからダウンロードした署名のないスクリプトを実行すると、実行する前に確認メッセージが表示されます。

実行ポリシーの確認方法

現在の実行ポリシーを確認する方法を説明します。

以下のコマンドを実行し、表示された結果が実行ポリシーとなります。

PS C:\workspace\PowerShell> Get-ExecutionPolicy
Restricted

今回の場合、実行ポリシーは「Restricted」ということになります。

実行ポリシーの設定方法

実行ポリシーの設定方法を説明します。

ここでの実行ポリシーの変更は、永続的な設定変更となります。
一時的に設定を変更する場合は、後述するスコープを含めて設定して下さい。
また、設定を変更する場合は、管理者権限が必要となります。

実行ポリシーを設定する際の書式です。

Set-ExecutionPolicy -ExecutionPolicy 設定する実行ポリシー

以下は、実行ポリシーを「RemoteSigned」に設定する例になります。

PS C:\workspace\PowerShell> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

実行ポリシーの変更
実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると、about_Execution_Policies
のヘルプ トピック (https://go.microsoft.com/fwlink/?LinkID=135170)
で説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシーを変更しますか?
[Y] はい(Y)  [A] すべて続行(A)  [N] いいえ(N)  [L] すべて無視(L)  [S] 中断(S)  [?] ヘルプ (既定値は "N"): y

管理者として実行せずに、実行ポリシーを変更すると、以下のようなエラーとなります。

PS C:\workspace\PowerShell> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

実行ポリシーの変更
実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると、about_Execution_Policies
のヘルプ トピック (https://go.microsoft.com/fwlink/?LinkID=135170)
で説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシーを変更しますか?
[Y] はい(Y)  [A] すべて続行(A)  [N] いいえ(N)  [L] すべて無視(L)  [S] 中断(S)  [?] ヘルプ (既定値は "N"): y
Set-ExecutionPolicy : レジストリ キー 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell
' へのアクセスが拒否されました。 既定 (LocalMachine) のスコープの実行ポリシーを変更するには、[管理者として実行] オプシ
ョンを使用して Windows PowerShell を起動してください。現在のユーザーの実行ポリシーを変更するには、"Set-ExecutionPolicy
-Scope CurrentUser" を実行してください。
発生場所 行:1 文字:1
+ Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : PermissionDenied: (:) [Set-ExecutionPolicy], UnauthorizedAccessException
    + FullyQualifiedErrorId : System.UnauthorizedAccessException,Microsoft.PowerShell.Commands.SetExecutionPolicyCommand

スコープについて

ここでは、スコープについて説明しています。

スコープとは、設定する実行ポリシーの影響範囲です。

スコープの一覧

スコープの一覧です。

スコープ説明
MachinePolicyコンピューターの全てのユーザーのグループポリシーによって設定されます。
UserPolicyコンピューターの現在のユーザーのグループポリシーによって設定されます。
Process実行ポリシーは、現在のPowerShellプロセスのみに影響します。
また、実行ポリシーはレジストリではなく環境変数($env:PSExecutionPolicyPreference)に保存されます。
PowerShellセッションが閉じられると、変数と値が削除されます。
CurrentUser実行ポリシーは、現在のユーザーのみに影響します。
設定は、HEKY_CURRENT_USERレジストリのサブキーに格納されます。
LocalMachine実行ポリシーは、コンピューター上の全てのユーザーに影響します。
設定は、HKEY_LOCAL_MACHINEレジストリのサブキーに格納されます。

スコープの確認方法

スコープに設定されている実行ポリシーを確認する方法を説明します。

確認方法は様々なものがありますが、
まずはスコープと、そのスコープに対応した実行ポリシーの一覧を表示するコマンドになります。

PS C:\workspace\PowerShell> Get-ExecutionPolicy -List

        Scope ExecutionPolicy
        ----- ---------------
MachinePolicy       Undefined
   UserPolicy       Undefined
      Process      Restricted
  CurrentUser       Undefined
 LocalMachine      Restricted

次に、指定したスコープに対応した実行ポリシーを確認するコマンドになります。

PS C:\workspace\PowerShell> Get-ExecutionPolicy -Scope Process
Restricted

今回の場合、スコープ「Process」に対応する実行ポリシーは「Restricted」ということになります。

スコープの設定方法

スコープの設定方法を説明します。

スコープを設定する際の書式です。

Set-ExecutionPolicy -ExecutionPolicy 設定する実行ポリシー -Scope スコープ

以下は、スコープを「Process」、実行ポリシーを「RemoteSigned」に設定する例になります。

PS C:\workspace\PowerShell> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process

実行ポリシーの変更
実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると、about_Execution_Policies
のヘルプ トピック (https://go.microsoft.com/fwlink/?LinkID=135170)
で説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシーを変更しますか?
[Y] はい(Y)  [A] すべて続行(A)  [N] いいえ(N)  [L] すべて無視(L)  [S] 中断(S)  [?] ヘルプ (既定値は "N"): y

記事は以上です。実行ポリシーについて、より詳しく知りたい方は下記のマイクロソフト公式サイトをご覧ください。

コメント

タイトルとURLをコピーしました