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

20230109-2-1.png

制限されていることがわかる。

続いて、全ての実行ポリシーを優先度順に表示する。

Get-ExecutionPolicy -List

20230109-2-2.png

ポリシーの変更

以下のコマンドを実行し、CurrentUserの権限をRemoteSignedに変更する。

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force

実行したら、再度実行ポリシーを表示して変更を確認する。

Get-ExecutionPolicy -List

20230109-2-3.png

元々実行したかったスクリプトが実行できることを確認する。

参考

わからないことは公式のドキュメントを読むに限る。

▼公式ドキュメント

https://learn.microsoft.com/ja-jp/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-7.3