powershellでスクリプトの実行権限を変更する
目次
事象
powershellでコマンドを実行しようとした際に、以下のようなメッセージが表示されて実行できない。
このシステムではスクリプトの実行が無効になっているため、xxxを読み込むことができません。
pyenv : このシステムではスクリプトの実行が無効になっているため、ファイル C:\Users\shaya\.pyenv\pyenv-win\bin\pyenv.ps1 を読み込むことができません。詳細については、「about_Execution_Policies」(https://go.microsoft.com/fwlink/?LinkID=135170 ) を参照してください。 発生場所 行:1 文字:1 + pyenv -v + ~~~~~ + CategoryInfo : セキュリティ エラー: (: ) []、PSSecurityException + FullyQualifiedErrorId : UnauthorizedAccess
powershellはデフォルトではスクリプトの実行を制限しているため、ポリシーを変更して実行できるようにする必要がある。
対応
ポリシーの確認
有効な実行ポリシーを表示。
Get-ExecutionPolicy
制限されていることがわかる。
続いて、全ての実行ポリシーを優先度順に表示する。
Get-ExecutionPolicy -List
ポリシーの変更
以下のコマンドを実行し、CurrentUserの権限をRemoteSignedに変更する。
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force
実行したら、再度実行ポリシーを表示して変更を確認する。
Get-ExecutionPolicy -List
元々実行したかったスクリプトが実行できることを確認する。
参考
わからないことは公式のドキュメントを読むに限る。
▼公式ドキュメント