PowerShellのお手製スクリプトを実行しようとした時に、赤文字が表示されて実行できない場合の対処法

2019年11月5日

PowerShellのスクリプトを実行しようとしたら、良く分からない赤文字が表示されて実行できないことが多々あります。
そんなときの対処法です。

現象

以下のような赤文字で激しく拒否されて実行できない。

スクリプトの実行がシステムで無効になっているため、ファイル C:\Users\Administrator\Desktop\test.ps1 を読み込めません。詳細については、「get-help about_signing」と入力してヘルプを参照してください。

原因

セキュリティ上の理由で、スクリプトの実行が無効化されているため

対処

実行ポリシーを変更する

現在の設定を確認

PS > Get-ExecutionPolicy
Restricted

Restrictedは、「全スクリプト実行不可」設定の意味。

RemoteSigned設定に変更

RemoteSignedは、「インターネット経由でダウンロードしたスクリプトのみ証明書を要求」設定の意味。

 PS > Set-ExecutionPolicy RemoteSigned
実行ポリシーの変更
実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると、about_Execution_Policies のヘルプ トピックで説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシーを変更しますか?
[Y] はい(Y) [N] いいえ(N) [S] 中断(S) [?] ヘルプ (既定値は "Y"):

 変更されたことを確認

PS > Get-ExecutionPolicy
RemoteSigned

PowerShellスクリプト(ps1)の実行

実行したかったスクリプトを実行し、正常に実行されることを確認しましょう。

備考

Unrestricted設定にすると、全スクリプトを実行可能となるが、セキュリティ的に良くないと思うので、RemoteSigned設定が良いと思います。