以前、
Power Shellスクリプトを実行しようとした際、下記のようなエラーが出た

このシステムではスクリプトの実行が無効になっているため、ファイル C:\Users\*省略*\test.ps1 を読み込むことができません。詳細については、「about_Execution_Policies」(https://go.microsoft.com/fwlink/?LinkID=135170) を参照してください。
上記のようなエラーが書いてある。
調べると、
スクリプトの実行ポリシーと言うものを変更することで解決できたので、調べたことをメモ。
解決法:Poweshellスクリプトの「実行ポリシー」を変更する
PowerShellのスクリプト実行に起きる上記のエラーを解決する方法は、
結論から言うと、「実行ポリシー」というものを変更することで解決することが可能だ。
実行ポリシーを変更することで、上記エラーを出さず、スクリプトを実行できるようになる
【PowerShell】実行ポリシーとは
PowerShellの実行ポリシーとは、
スクリプトの実行を許可したり、しなかったりするための設定のことだ。
なぜこのような設定があるかと浮いと、
悪意のあるスクリプトなどを不用意に実行しないためなど、セキュリティ面での目的がある。

PowerShellの実行ポリシーは5段階に分けられる
PowerShellの実行ポリシーは、段階が5段階に分けられている。
それぞれのレベルで、スクリプトの種類と実行に関しての制約に違いがある。
デフォルトの実行ポリシーは「Restricted」になっている。そして、
Restrictedでは全てのスクリプトを実行できない設定になっているので、これが原因でスクリプトを実行できないというのが本エラーの原因だ。
そのため、
スクリプトを実行するためには、もっと制限が緩い実行ポリシーに変更する必要がある。
PowerShell 実行ポリシーの一覧
下記が5段階に分けられている、実行ポリシーの一覧。
実行ポリシー | 内容 | ローカル | リモート |
---|---|---|---|
Restricted | 全てのスクリプトを制限。デフォルト値。 | × | × |
AllSigned | 全ての署名付きスクリプトのみ実行可能。 | △ (署名付のみ) |
△ (署名付のみ) |
RemoteSigned | ローカルのスクリプトは実行可能。 インターネットからダウンロードした外部のスクリプトは署名が必要。 |
○ | △ (署名付のみ) |
Unrestricted | 全てのスクリプトが制限なし。 ただし、インターネットからダウンロードしたファイルは実行時、確認される。 |
○ | ○ (確認あり) |
Bypass | すべてのスクリプトが実行可能(確認なし)。 | ○ | ○ |
実行ポリシー変更手順
では本題、
PowerShell 実行ポリシーの変更手順を確認していく。
実行ポリシーの変更手順は下記にようになる
- Power shellを管理者権限で開く
- Set-ExecutionPolicyコマンドを打つ
- Get-ExecutionPolicyコマンドで、実行ポリシーの変更を確認
①Power shellを管理者権限で開く
「スタート → Windows PowerShell(右クリック)→ その他(右クリック)→ 管理者として実行」

Set-ExecutionPolicyコマンドを打つ
「Set-ExecutionPolicy 指定したい実行ポリシー」の形式でコマンド実行。
上記コマンドで、指定した実行ポリシーに変更することができる。
注意点としては、コマンド実行後、「実行ポリシーを変更しますか?」と聞かれるので、Yを入力する。

Get-ExecutionPolicyコマンドで、実行ポリシーの変更を確認
実行ポリシー変更後は、変更が反映されているか確認しよう。
Get-ExecutionPolicyコマンドを打つと、現在の実行ポリシーが確認できる。

以上で、スクリプトを実行できるようになる。
関連記事
https://qiita.com/earthdiver1/items/b3f529c81f5892972a72