【PowerShell】Set-ExecutionPolicy RemoteSigned と Scope の適応範囲の違いをわかりやすく解説

PowerShell でスクリプトを実行しようとすると、
「このシステムではスクリプトの実行が無効になっています」
とエラーが出たことはありませんか?

これは 実行ポリシー(ExecutionPolicy) が原因です。
今回は、よく使われる RemoteSigned の意味と、Scope パラメータによる適用範囲の違いをわかりやすくまとめます。


1. 実行ポリシーとは?

PowerShell の実行ポリシーは、セキュリティ上の制御ルールです。
どのようなスクリプトを実行できるかを決めています。

よく使われるポリシー

  • Restricted
    デフォルト。スクリプトは実行できない(コマンドは可能)。
  • RemoteSigned
    ローカルで作成したスクリプトはそのまま実行可能。
    インターネットからダウンロードしたスクリプトは「信頼された署名」が必要。
  • Unrestricted
    制限なし。セキュリティリスクが高いので基本的に非推奨。

2. RemoteSigned の使いどころ

普段、自分で作成したスクリプトを使うだけなら RemoteSigned が便利です。
セキュリティをある程度保ちながら、日常的な開発作業をスムーズに進められます。


3. Scope(スコープ)の違い

Set-ExecutionPolicy には -Scope パラメータがあります。
これは「どの範囲に適用するか」を指定するものです。

Scope適用範囲特徴
Process現在の PowerShell セッションのみウィンドウを閉じると元に戻る(お試し向け)
CurrentUser現在ログイン中のユーザーのみ管理者権限不要。よく使われる
LocalMachineコンピューター全体(すべてのユーザー)管理者権限が必要
UserPolicyユーザー単位のグループポリシーGPO 設定が優先される
MachinePolicyコンピューター単位のグループポリシー最優先。変更不可な場合あり

4. 実行例(設定コード)

一時的にスクリプトを実行したい場合(セッション限定)

Set-ExecutionPolicy RemoteSigned -Scope Process

自分のユーザーだけ有効化(管理者権限不要)

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

PC全体で有効化(全ユーザー対象)

Set-ExecutionPolicy RemoteSigned -Scope LocalMachine

5. 注意点(設定の戻し方)

  • グループポリシーで設定されている場合は、個別に変更しても無効になります。
  • セキュリティを考慮して、不要になったら元に戻すことをおすすめします。

戻す例(デフォルトに戻す):

Set-ExecutionPolicy Restricted -Scope CurrentUser

6. まとめ

  • RemoteSigned は「ローカルのスクリプトは実行できる」安全寄りの設定。
  • Scope を指定することで「どの範囲に適用するか」を決められる。
  • 普段使いなら CurrentUser が便利で安全。

コメント

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