本日はPowerShellの小ネタ枠です。
PowerShellでps1ファイルを実行時に「スクリプトの実行が無効になっているため~」エラーが発生した場合の対処方法です。
原因
スクリプトの実行を制限するポリシーとなっていることが原因です。
スクリプトの実行ポリシーはGet-ExecutionPolicyコマンドで確認できます。
Get-ExecutionPolicy

デフォルト設定ではRestrictedが設定されており、これは全てのスクリプトの実行が制限されます。
| 実行ポリシー | 署名あり | ローカル+署名なし | 非ローカル+署名なし | 説明 |
|---|---|---|---|---|
| Restricted | 不可 | 不可 | 不可 | 全てのスクリプトが実行できない(デフォルト) |
| AllSigned | 実行許可 | 不可 | 不可 | 署名のあるスクリプトのみ実行できる |
| RemoteSigned | 実行許可 | 実行許可 | 不可 | ローカルスクリプトと非ローカルの署名のあるスクリプトのみ実行できる |
| Unrestricted | 実行許可 | 実行許可 | 許可チェック | 非ローカルの署名のないスクリプトは実行時に許可を要求する |
| Bypass | 実行許可 | 実行許可 | 実行許可 | 全てのスクリプトが実行できる |


