[PowerShell]スクリプトの実行ポリシーを設定する

handcraft 7/5/2009 9176 4.75 PowerShell

PowerShell の実行ポリシーはRestricted になっており、外部スクリプトファイルを実行できません。本気時では、スクリプトの実行ポリシーの確認や設定を行う方法を掲載します。

動作確認環境

  • Windows PowerShell 1.0

1. PowerShellの実行ポリシーについて

PowerShellにはRestricted, AllSigned, RemoteSigned, Unrestricted の4つの実行ポリシーがあります。デフォルトではRestricted となっています。

実行ポリシーの説明は、PowerShell を起動して、次のコマンドを実行することで確認できます。

#get-help about_signing | more とすると、1ページずつ表示できます。
get-help about_signing

表示される詳細説明を抜粋します。

詳細説明

詳細説明


    PowerShell 実行ポリシーは、PowerShell が読み込む構成ファイルや
    PowerShell が実行するスクリプトに関する条件を決定することによって、
    スクリプト環境にセキュリティ機能を提供します。


    既定では、最も高いセキュリティで保護されるポリシーである "Restricted"
    が使用されます。このポリシーでは、個々のコマンドの実行は許可されますが、
    スクリプトの実行は許可されません。


    実行ポリシーによって、PowerShell によるファイルの読み込みやスクリプトの
    実行が禁止されている場合は、制限に関する次のような警告が表示されます。

        "拡張型データ ファイルの読み込み中にエラーが発生しました。"
        "書式データ ファイルの読み込み中にエラーが発生しました:"


    ファイルを読み込んだり、スクリプトの実行を許可したりするためには、
    実行ポリシーを変更する必要があります。

4つの実行ポリシーの説明を記載します。実行ポリシーの説明は、get-help about_signing の出力から引用しています。

ポリシー 説明
Restricted  既定の実行ポリシーです。
 個々のコマンドは許可されますが、スクリプトは実行できません。
AllSigned スクリプトを実行できます。
ローカル コンピュータ上で作成されたスクリプトも含めて、すべてのスクリプトと構成ファイルに対して、信頼された発行元によるデジタル署名が必要です。
信頼された発行元からのスクリプトを実行する前に、プロンプトが表示されます。
署名されてはいても、悪意のあるスクリプトを実行するおそれがあります。
RemoteSigned スクリプトを実行できます。
インターネットからダウンロードされたスクリプトおよび構成ファイル(電子メール プログラムとインスタント メッセージング プログラムを
含みます) に対して、信頼された発行元によるデジタル署名が必要です。
ローカル コンピュータから実行されるスクリプトに対してデジタル署名を要求しません。
信頼された発行元からのスクリプトを実行する前に、プロンプトは表示されません。
署名されてはいても、悪意のあるスクリプトを実行するおそれがあります。
Unrestricted 署名なしスクリプトを実行できます。
インターネットからダウンロードされたスクリプトおよび構成ファイル (Microsoft Outlook、Outlook Express、および Windows Messenger を含みます) を、インターネットから入手されたファイルであることを警告してから実行します。
悪意のあるスクリプトを実行するおそれがあります。

2. 実行ポリシーの確認

実行ポリシーは次のコマンドで確認します。

Get-ExecutionPolicy

3. 実行ポリシーの設定

実行ポリシーは次のコマンドでセットします。署名されていないスクリプトファイルを実行できるようにポリシーを変更しています。

Set-ExecutionPoclicy RemoteSigned

4. まとめ

今回の説明は以上です。スクリプトを実行しようとしたときに出会った問題なので、メモとして記載しました。