Windows PowerShell でスクリプトの実行を許可する方法

Windows PowerShell でスクリプトの実行を許可する方法

Windows PowerShell でスクリプトを実行しようとすると「このシステムではスクリプトの実行が無効になっているため、ファイル (ファイル名) を読み込むことができません。」とエラーが発生します。この設定を変更してスクリプトを実行できるようにする方法を解説します。

Windows PowerShell ではデフォルト設定でスクリプトの実行が禁止されています。スクリプトを実行できるようにするには、実行ポリシー(ExecutionPolicy) を変更しスクリプトの実行を許可する必要があります。

目次

現在の実行ポリシーを確認

まずは現在の実行ポリシーの設定値を確認しましょう。

次のコマンドを実行します。

Get-ExecutionPolicy

デフォルトでは Restricted となっているはずです。

これはスクリプトの実行を禁止する設定のため、スクリプトを実行するためにはこの設定を変更する必要があります。

実行ポリシーを変更する方法

Windows PowerShell の実行ポリシーの設定値には次の4種類があります。

設定値 説明
Restricted スクリプトの実行禁止
AllSigned 署名付きのスクリプトのみ実行できます。インターネットからダウンロードしたスクリプトは実行できません。
RemoteSigned ローカルの著名なしスクリプトと、インターネットからダウンロードした署名付きのスクリプトのみ実行できます。
Unrestricted すべてのスクリプトを実行できます。

実行ポリシーを変更するには Windows PowerShell で次のコマンドを実行します。

Set-ExecutionPolicy 任意の実行ポリシー

例えば実行ポリシーを RemoteSigned に変更したければ次のコマンドを実行します。

Set-ExecutionPolicy RemoteSigned

この方法で設定を変更すると、次に設定を変更するまで実行ポリシーの設定が保持されます。楽ではありますがその分セキュリティリスクが高くなります。また、管理者権限が必要となります。

一時的に実行ポリシーを変更するには次のように末尾に -Scope Process を記述します。

Set-ExecutionPolicy RemoteSigned -Scope Process
末尾に -Scope Process を付けて実行

この方法は常時実行を許可するよりもセキュリティリスクが低いものの、 Windows PowerShell を起動する度に設定が必要です。こちらの方法では管理者権限は不要です。

PowerShell の起動時に自動的に実行ポリシーを設定する方法

起動引数を指定したWindows PowerShell のショートカットを作成し、起動引数を設定することで、PowerShell を起動した場合に実行ポリシーを自動的に設定することができます。

Windows PowerShell のショートカットに起動引数を設定

こちらも管理者権限は不要です。

このエントリーをはてなブックマークに追加

コメントを残す

頂いたコメントは一読した後表示させて頂いております。
反映まで数日かかる場合もございますがご了承下さい。