single.php

PowerShellスクリプト実行時にセキュリティエラーが表示される場合の対処法

PowerShellのスクリプト(拡張子.ps1)を実行する際に、ターミナル画面で[このシステムではスクリプトの実行が無効になっているため]メッセージが表示される場合の対処法を備忘録的に投稿します。

スポンサーリンク

PS1ファイルが読み込めない

実際にターミナル画面でスクリプトファイル(拡張子 .ps1)を実行した場合に、次のようなエラー画面が表示されます。

原因は既定値のまま実行している

エラーになる原因は、Windowsで導入されたセキュリティで、既定値(インストール直後)の状態では、PowerShellでのスクリプトファイル実行は許可されていません。初めて実行するためには、セキュリティを既定値から変更する必要があります。

1. PowerShell(またはWindows Terminal)を開きます。

2. 現在のセキュリティ設定を確認するために、次のコマンドを実行します。

Get-ExecutionPolicy

3. [Restricted]が表示された場合には、セキュリティを変更する必要があります。

4. 次のコマンドを入力します。

Set-ExecutionPolicy RemoteSigned -Scope Process

5. 再度[Get-ExecutionPolicy]コマンドを実行して[RemoteSigned]が表示されれば、セキュリティが変更されています。

6. PowerShell(またはWindows Terminal)を閉じない状態でスクリプトファイル(.ps1)を実行します。(閉じてしまうと、設定が元に戻ってしまうので再設定が必定です)

7. エラーが表示されなくなります。

スコープ設定は重要

スクリプトの実行セキュリティを変更するのは、ウィルスなどのリスクがあります。先述した[Set-ExecutionPolicy]を、Scopeオプションを追加して設定を行いました。

-Scope Process

を追加して実行した場合、セキュリティ設定の変更範囲が、現在のプロセスに限定されます。このオプションを使うことで、スクリプトを実行したい時(PowerShellやWindows Terminalを開いている間)のみ変更することができるので、利用しない場合のセキュリティを保つことができるようになります。

まとめ

PowerShellのスクリプトファイル(拡張子 .ps1)を実行する際に、 [このシステムではスクリプトの実行が無効になっているため]メッセージが表示される場合 、Windowsのセキュリティ設定が既定値のまま実行されている可能性があります。

PowerShellでのスクリプト実行や既定値で無効なため[Set-ExecutionPolicy]コマンドで変更してから実行する必要があります。

また、スクリプト実行に関するセキュリティ設定の変更は、平常時にウィルスやマルウェアに対するリスクを上げてしまう可能性があるので、Scopeオプションを付けて実行するのがおススメです。

スポンサーリンク

最後までご覧いただき、ありがとうございます。

コメントを残す

メールアドレスが公開されることはありません。