<目次>
(1) 「このシステムではスクリプトの実行が無効になっているため、ファイルXXXを読み込みことができません」エラー(PowerShell)が出る原因と対処方法
(1-1) エラーメッセージ・発生状況について
(1-2) 原因
(1-3) 対処法
(1) 「このシステムではスクリプトの実行が無効になっているため、ファイルXXXを読み込みことができません」エラー(PowerShell)が出る原因と対処方法
(1-1) エラーメッセージ・発生状況について
PowerShellにて以下のエラーが出ました。
(エラーメッセージ例)
XXXXX : このシステムではスクリプトの実行が無効になっているため、ファイル XXXXX を読み込むことができません。詳細については、「about_Execution_Policies」(https://go.microsoft.com/fwlink/?LinkID=135170) を参照してください。
発生場所 行:1 文字:1
+ XXXXXX ; func host start
+ ~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : セキュリティ エラー: (: ) []、PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess
一例として、このエラーはVisual Studio CodeにてAzure Functions(Python)のデバッグをしようとした際に発生しました。
(図111)
(1-2) 原因
このエラーはPowerShellの
「Execution Policy」(PowerShellの安全装置のような機能)の設定が「Restricted」(スクリプトを許可しない)になっているため、権限不足により実行できなかった可能性があります。
例えば(図111)の場合「venv\Scripts\activate」コマンドが「Activate.ps1」というPower Shellのスクリプトを実行し、仮想環境(venv)を有効化しようとしたが、「Execution Policy」の設定で弾かれてしまった可能性があります。
それを確認する場合は、WindowsのPower Shellを開いて「Get-ExecutionPolicy」コマンドレットを実行し、その結果を見てみます。
(図121①)
この結果が「Restricted」になっているようであれば、後述する「対策」を実行する事で、事象が解消する可能性があります。
(参考)「Restricted」と「RemoteSigned」の違い
Execution Policyの値 |
■Restricted |
■RemoteSigned |
・スクリプト実行 |
×
(「.ps1」、「.ps1xml」、「.psm1」) |
○ |
・コマンド実行 |
○ |
○ |
備考 |
・Windows クライアント用OS(例:Windows7,8,10,11)のデフォルト値 |
・Windows Serverのデフォルト値
・インターネット上からダウンロードしたスクリプトの実行の場合、電子署名が必要 |
(1-3) 対処法
上述の原因の場合はPowerShellの「Execution Policy」の値を「Restricted」⇒「RemoteSigned」に変更します。これにより拡張子「.ps1」のスクリプト等が実行可能になります(ローカルスクリプトの場合は署名不要、インターネット上のスクリプトの場合は署名必要)
・①WindowsのスタートメニューからPowerShellを検索し、右クリックで「管理者として実行」で開きます。
(図131①)
↓
・②「Execution Policy」を変更するために以下のコマンドを実行します。
> set-executionpolicy remotesigned
⇒「Execution Policy」の値を「Remotesigned」に変更
(図131②)
↓
・③確認のプロンプトが表示されたら「Y」を入力して「Enter」押下。
(図131③)
↓
・④確認のため、再度「Get-ExecutionPolicy」で設定値が「RemoteSigned」になっている事を確認します。
(図131④)
ここまで実施すれば、エラーは発生しなくなっているはずです。
解決しました!
ありがとうございます。
[…] 「このシステムではスクリプトの実行が無効になっているため、ファイルX… […]