はじめに:Set-ExecutionPolicyが効かない…なぜ?
PowerShellで実行ポリシーを変更しようとして、次のようなエラーが出たことはありませんか。
「実行ポリシーの設定は、より優先順位の高いポリシーによって上書きされています。」
前回の記事で紹介した Set-ExecutionPolicy RemoteSigned を実行したのに変更できない。
この場合、多くはグループポリシー(GPO)が原因です。
この記事では、なぜ変更できないのか、その仕組みと正しい対応方法を解説します。
グループポリシーとは何か?
グループポリシーとは、企業や組織でパソコンの設定を一括管理する仕組みです。
Active Directory環境では、管理者がドメイン全体にセキュリティ設定を適用できます。
PowerShellの実行ポリシーも、その対象です。
つまり、会社のPCでは個人の判断で変更できないことがある、ということです。
実行ポリシーの優先順位を理解する
PowerShellの実行ポリシーには、優先順位があります。
Get-ExecutionPolicy -List
実行すると次のようなスコープが表示されます。
- MachinePolicy
- UserPolicy
- Process
- CurrentUser
- LocalMachine
上にあるほど優先順位が高いです。
MachinePolicy や UserPolicy に値が入っている場合、グループポリシーで制御されています。
この状態では、LocalMachineやCurrentUserを変更しても反映されません。
本当にグループポリシーが原因か確認する方法
まずは次のコマンドを実行します。
Get-ExecutionPolicy -List
もし MachinePolicy または UserPolicy に値が表示されていれば、GPOによる制御です。
あなたが企業のドメイン管理者で、さらに詳細を確認したい場合は、Active Directoryの「グループポリシーの管理」コンソールを開き、対象のコンピューターアカウントに適用されるグループポリシーオブジェクトを開きます。
以下のパスを確認します。
コンピューターの構成 → 管理用テンプレート → Windowsコンポーネント → Windows PowerShell
「スクリプト実行を有効にする」の設定を確認します。
有効になっている場合は以下の実行ポリシーのいずれかが設定されていると思います。
- 署名済みスクリプトのみ許可する
- ローカルスクリプトおよびリモートの署名済みスクリプトを許可する
- すべてのスクリプトを許可する
企業環境での正しい対応方法
グループポリシーで制限されている場合、基本的には個人で変更できません。
勝手に回避することは、セキュリティポリシー違反になる可能性があります。
対応方法は次の通りです。
- IT管理者へ申請する
- 検証用のローカル環境を用意する
- Processスコープで一時的にBypassを使用する(許可されている場合)
一時的な回避(許可されている場合のみ)
powershell -ExecutionPolicy Bypass -File script.ps1
この方法は、その起動時のみ有効です。
ただし、組織ルールに従うことが最優先です。
スタンドアロンPCの場合
会社PCでない場合は、ローカルポリシーが設定されている可能性があります。
gpedit.mscで設定を確認し、「未構成」に戻すことで解決する場合があります。
よくある誤解
1. 管理者なら変更できる
ドメインGPOはローカル管理者でも変更できません。
2. Unrestrictedにすれば解決する
上位ポリシーがある限り無効です。
3. レジストリを直接変更すればよい
GPOは定期的に上書きされます。意味がありません。
安全な運用の考え方
実行ポリシーはセキュリティ対策の一部です。
特に企業環境では、意図せずマルウェアが実行されるのを防ぐ役割があります。
変更できない場合は、仕組みを理解し、正しいルートで対応することが重要です。
まとめ
PowerShellの実行ポリシーが変更できない場合、グループポリシーが原因の可能性が高いです。
Get-ExecutionPolicy -Listで確認し、MachinePolicyやUserPolicyに設定がある場合は管理者へ相談します。
仕組みを理解すれば、無理に変更しようとせず、正しい判断ができるようになります。
免責規定
この記事で提供される情報は、一般的なガイダンスを目的としており、すべての環境やシステムでの動作を保証するものではありません。
OSのバージョンやリリースによっては、記載されている事が実行できない、または異なる結果をもたらす可能性があります。
また、会社所有のパソコン、スマホ、タブレットなどでは、ポリシーや権限によって実行できない場合があります。
この記事の情報を使用することによって生じる問題や結果について、筆者およびサイト管理者は責任を負いません。
すべての操作は自己責任で行ってください。
もし、記事の中で間違いやご指摘があればコメントを頂けると大変ありがたいです。
最後までお読みいただきありがとうございました。
またお会いしましょう!

コメント