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 が便利で安全。
コメント