「このシステムではスクリプトの実行が無効になっているため、ファイル (スクリプトファイル) を読み込むことができません。…」のメッセージが表示されPowerShellスクリプトが実行できない
PowerShellスクリプトを実行すると、
「このシステムではスクリプトの実行が無効になっているため、ファイル (スクリプトファイル) を読み込むことができません。…」のエラーメッセージが表示される現象の対処法を紹介します。
現象
PowerShellのスクリプトを実行すると、以下のエラーメッセージが表示され、スクリプトを実行できません。
エラーメッセージ
このシステムではスクリプトの実行が無効になっているためファイル (スクリプトファイル) を読み込むことができません。
詳細については、「about_Execution_Policies」(https://go.microsoft.com/fwlink/?LinkID=135170) を参照してください。
原因
いくつかの原因はありますが、スクリプトを実行するためのポリシー設定がされていないため、発生する場合があります。
設定の確認
PowerShelのプロンプトで次のコマンドを実行します。
コマンドを実行し、"Restricted" が表示された場合は、ポリシーによる原因の可能性が高いです。
PowerShellスクリプトを実行するための設定手順
以下の手順でPowerShellスクリプトの実行を許可できます。
PowerShellスクリプトのコマンドラインから次のコマンドを実行します。
Set-ExecutionPolicy RemoteSigned
なお、一度限りの実行の場合は、スコープを指定して以下のコマンドを利用してもよいです。
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process
正しく実行されると下図の画面となります。(何も表示されません。マシンの状況や設定によっては確認メッセージが表示される場合があります。)
再度、
Get-ExecutionPolicy
コマンドを実行します。実行結果が"RemoteSigned"になれば、設定は変更できています。
動作確認
PowerShellのスクリプトファイルを入力し、PowerShellスクリプトが実行できることを確認します。
補足
注意
管理者権限がない状態でPowerShellコマンドラインから"Set-ExecutionPolicy RemoteSigned"のコマンドを実行した場合、下図のアクセス権が無い旨のメッセージが表示され、設定に失敗します。
![](/document/image/powershell-not-executable-by-execution-settings-2024-09.png?width=600)
または、
管理者権限でコンソールを利用できない場合は、
-Scope
オプションに Porcess を指定し、このセッションのみの設定とすればポリシー設定の変更ができます。
-ExecutionPolicy
のポリシーの値は以下の値が設定できます。
ポリシーの値 | 意味 |
AllSigned | すべてのスクリプトと構成ファイルが、ローカル コンピューターで記述されたスクリプトを含め、信頼できる発行元によって署名されている必要があります。 |
Bypass | 何もブロックされず、警告やプロンプトは表示されません。 |
Default | 既定の実行ポリシーを設定します。 |
RemoteSigned | インターネットからダウンロードしたすべてのスクリプトと構成ファイルが、信頼できる発行元によって署名されている必要があります。 Windows Serverの場合の規定の実行ポリシー |
Restricted | Windows クライアント コンピューター向けの既定の実行ポリシー |
Undefined | スコープに対して実行ポリシーが設定されていません。 グループ ポリシーによって設定されていないスコープから、割り当てられた実行ポリシーを削除します。 |
Unrestricted | すべての構成ファイルを読み込んで、すべてのスクリプトを実行します。 インターネットからダウンロードされた署名されていないスクリプトを実行すると、実行前にアクセス許可の入力を求められます。 |
-Scope
の値は以下の値が設定できます。
Scopeの値 | 意味 |
MachinePolicy | コンピューターのすべてのユーザーのグループ ポリシーに設定されます |
UserPolicy | コンピューターの現在のユーザーのグループ ポリシーに設定されます |
Process | 現在の PowerShell セッションにのみ影響します |
LocalMachine | コンピューターのすべてのユーザーに影響します (既定のスコープ) |
CurrentUser | 現在のユーザーにのみ影響します |
著者
iPentecのプログラマー、最近はAIの積極的な活用にも取り組み中。
とっても恥ずかしがり。
掲載日: 2013-09-17
改訂日: 2024-04-30