🐿️

PowerShellの実行ポリシーについて

に公開

PowerShellの実行ポリシーについて

PowerShellスクリプト (.ps1 ファイル)を実行する際に、Windowsのデフォルト設定では、スクリプト実行がブロックされます。これは「PowerShell 実行ポリシー」というセキュリティ機能によるもので、コンピューターを悪意のあるスクリプトから保護します。ここでは「PowerShell 実行ポリシー」について解説します。

1. PowerShell 実行ポリシーの確認方法

現在の実行ポリシーの設定を確認するには、PowerShell を開いて以下のコマンドを実行します。

Get-ExecutionPolicy

これにより、現在有効になっているポリシー名(例: Restricted, RemoteSigned など)が表示されます。

Restricted

2. すべての実行ポリシーを確認する

さらに詳細な情報を知りたい場合は、-List オプションを使います。これは、どの「スコープ」にどんなポリシーが設定されているかを表示します。

Get-ExecutionPolicy -List
        Scope ExecutionPolicy
        ----- ---------------
MachinePolicy       Undefined
   UserPolicy       Undefined
      Process       Undefined
  CurrentUser    RemoteSigned
 LocalMachine       Undefined

3. PowerShell 実行ポリシーの設定方法

  • 一時的にスクリプト実行を許可する場合

    現在の PowerShell セッションにのみに、一時的にスクリプト実行を許可します。

    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process -Force
    

    この設定は、PowerShell ウィンドウを閉じると自動的に元の設定に戻ります。

  • 永続的にスクリプト実行を許可する場合

    現在のユーザーにのみ、スクリプト実行を許可します。

    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser -Force
    

    この設定は、次回以降 PowerShell ウィンドウを開いても有効になります。

4. -ExecutionPolicy

Set-ExecutionPolicy コマンドで設定できる主な実行ポリシーの種類は以下の通りです。

ポリシー名 説明
Restricted コマンドのみ実行可能。スクリプトは実行禁止。(デフォルト)
AllSigned 信頼できる発行元によって署名されたスクリプトのみ実行可能。
RemoteSigned ローカルで作成したスクリプトのみ実行可能。インターネットからダウンロードした署名のないスクリプトはブロックされます。
Unrestricted すべてのスクリプトが実行可能。インターネットからダウンロードした署名のないスクリプトは実行前に警告が表示されます。
Bypass すべてのスクリプトが実行可能。何もブロックされず、警告やプロンプトは表示されません。
Undefined 現在のスコープの実行ポリシーを未定義します。

5. -Scope

実行ポリシーをどの範囲に適用するかを指定するのが -Scope オプションです。有効な実行ポリシーは、以下の表の優先順位に従って決定されます。

スコープ名 説明
MachinePolicy 組織の管理者によって設定されます。コンピューターのすべてのユーザーに対して設定します。
UserPolicy 組織の管理者によって設定されます。ユーザー単位で設定します。
Process 現在の PowerShell セッションにのみ影響します。
CurrentUser 現在のユーザーのみに影響します。管理者権限は不要。
LocalMachine 現在のコンピューターのすべてのユーザーに影響します。管理者権限が必要。

6. 最後に

実行ポリシーの変更はシステムのセキュリティに影響します。設定変更を行う際は、可能な限り影響範囲の狭いスコープ (ProcessCurrentUser など、管理者権限が不要な範囲) を選択することを推奨します。また、実行するスクリプトが信頼できるものであることを常に確認してください。特に UnrestrictedBypass など緩いポリシーを設定する場合は、そのリスクを十分に理解した上で行い、管理された環境では必ず組織のポリシーに従いましょう。

7. 参考文献

Discussion