つながりを開発するブログ

PowerShellで実行ポリシーを変更する

2021/02/24
By Kentaro Yamaguchi

Vue.jsを使った開発をすることがあり、その取り掛かりで環境を準備しているときに起きた問題の備忘録。

発生した問題

Visual Studio Codeを使ってプロジェクトを作成しようとしたところ、次の問題が発生した。

対応方法

PowerShell実行ポリシーの設定を変更する。

  1. 管理者権限でWindows PowerShellを起動する
  2. 現在の設定を確認する
    > Get-ExecutionPolicy

    RestrictedやUndefinedになっているはず

  3. ポリシーの設定を変更する
    > Set-ExecutionPolicy RemoteSigned

実行ポリシーの設定値

ポリシー説明
Restricted全てのスクリプトが制限される。
AllSigned全ての署名付きスクリプトのみ実行可能。署名がないものは実行不可。
RemoteSignedローカルのファイルは実行可能。インターネットからダウンロードした外部のスクリプトは署名が必要。
Unrestricted全てのスクリプトが実行可能。ただし、インターネットからダウンロードしたファイルは実行時、確認される。
Defaultデフォルトのポリシーを設定する。Windowsクライアントでは"Restricted"、Windows Serverでは"RemoteSigned"
Bypass警告や確認なしに、すべてのファイルが実行可能。
Undefined現在のスコープから現在割り当てられている実行ポリシーを削除する。

実行ポリシーのスコープ

特定のスコープでのみ有効な実行ポリシーを設定することが可能。
設定する場合は、"Scope"オプションを指定する。(デフォルトは "LocalMachine")

> Set-ExecutionPolicy RemoteSigned -Scope Process
スコープ説明
Process実行ポリシーは現在のWindows PowerShellプロセスにのみ影響する。
CurrentUser実行ポリシーは現在のユーザーのみに影響する。
LocalMachine実行ポリシーは現在のコンピューター上のすべてのユーザーに影響する。

実行ポリシーの設定値の保存先

スコープ保存先
Process環境変数
PSExecutionPolicyPreference
(PowerShellプロセスが終了すると、変数と値が削除される)
CurrentUserレジストリ
HEKY_CURRENT_USER:\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell のExecutionPolicy
LocalMachineレジストリ
HKEY_LOCAL_MACHINE:\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell のExecutionPolicy
タイトルとURLをコピーしました