もくじ
📝 はじめに
PowerShellでスクリプトを実行しようとしたときに、
「このシステムではスクリプトの実行が禁止されています」
といったエラーを見たことはありませんか?
その挙動を制御しているのが
Set-ExecutionPolicy です。
これは、PowerShellでスクリプトを実行してよいかどうかを制御するための重要な設定です。
- PowerShellスクリプトが実行できず困っている
- セキュリティを保ったまま実行を許可したい
- 管理者作業用に一時的に制限を緩めたい
- なぜスクリプトがブロックされるのか理解したい
✅ このコマンドでできること(要点)
- Set-ExecutionPolicy でスクリプト実行ポリシーを変更できる
- セキュリティレベルに応じて実行可否を制御できる
- ユーザー単位・システム単位で設定できる
- スクリプトが実行できない原因の切り分けに使える
✅ Set-ExecutionPolicyでできること
Set-ExecutionPolicyは、PowerShellが
どのスクリプトを実行してよいかを判断するためのルールを設定します。
- すべてのスクリプトを禁止する
- 署名付きスクリプトのみ許可する
- ローカル作成のスクリプトだけ許可する
- 警告付きで実行を許可する
ExecutionPolicyは「セキュリティ境界」ではなく、
誤実行を防ぐための安全装置という位置づけです。
🧩 基本構文
基本的な書き方は次の通りです。
Set-ExecutionPolicy ポリシー名
▶ 基本的な使い方(まずこれだけ)
📄 現在の実行ポリシーを確認する
Get-ExecutionPolicy
現在有効になっているExecutionPolicyが表示されます。
🔓 一般的によく使われる設定(RemoteSigned)
Set-ExecutionPolicy RemoteSigned
ローカルで作成したスクリプトは実行可能、
インターネットから取得したスクリプトは署名が必要になります。
🛠 よく使われる実行ポリシーの種類
Restricted
すべてのスクリプトを禁止(既定)
AllSigned
署名付きスクリプトのみ実行可能
RemoteSigned
ローカル作成はOK、外部取得は署名必須
Unrestricted
警告付きでほぼすべて実行可能
💼 実務でよく使う使用例(応用)
🤔 一時的に実行を許可したい場合
Set-ExecutionPolicy -Scope Process RemoteSigned
現在のPowerShellセッションだけで有効になるため、
作業終了後に元へ戻す必要がありません。
- 恒久変更は最小限にする
- 一時作業は Process スコープを使う
🔄 ユーザー単位で設定する
Set-ExecutionPolicy -Scope CurrentUser RemoteSigned
🧩 よくある勘違い・つまずきポイント
- 管理者権限が必要な場合がある
- グループポリシーで上書きされていることがある
- 設定変更後も新しいセッションが必要な場合がある
- ExecutionPolicyは完全なセキュリティ対策ではない
⚠ エラー・うまく動かないときの確認ポイント
- 管理者としてPowerShellを起動しているか
- Get-ExecutionPolicy -List で優先順位を確認したか
- 組織のポリシー(GPO)で制限されていないか
🧠 注意点
ExecutionPolicyを緩めすぎると、
意図しないスクリプトが実行されるリスクが高まります。
必要最小限の設定変更を心がけましょう。
📌 まとめ
- Set-ExecutionPolicyはスクリプト実行可否を制御する重要な設定
- RemoteSignedが実務で最もよく使われる
- 一時的な変更にはScope指定が安全
🔎 PowerShellコマンドを探す
PowerShellには、Set-ExecutionPolicy以外にも
セキュリティや管理に関するコマンドが用意されています。
- スクリプトが実行できない原因を調べたい
- 実行ログを記録したい
- 管理者向けの設定を確認したい
- PowerShellの安全な使い方を知りたい
