2023年01月12日 更新

PowerShellでスクリプトファイルを普通に実行したい

どうも、クラゲジュニアです。

PowerShellでスクリプトファイルを作って普通に実行するとエラーになったので、その対策メモです。

スクリプトファイル作成

以下のコード内容でhello.ps1という名前で保存

Write-Output 'Hello World!'

🆖普通に実行するとエラーになる

PowerShellにて以下のコマンドで実行

./hello.ps1

以下のような表示が出る

このスクリプトは現在のシステムでは実行できません。スクリプトの実行および実行ポリシーの設定の詳細については、「about_Execution_Policies」(https://go.microsoft.com/f 
wlink/?LinkID=135170) を参照してください。
発生場所 行:1 文字:1
+ .\hello.ps1
+ ~~~~~~~~~~~
    + CategoryInfo          : セキュリティ エラー: (: ) []、PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess

🆗実行ポリシーを指定して実行する

PowerShellにて以下のコマンドで実行

PowerShell -ExecutionPolicy RemoteSigned .\hello.ps1

問題なく実行される

Hello World!

参考

例えば、以下のような実行ポリシーがあります。

実行ポリシー 内容
AllSigned 署名済みスクリプトのみ許可する
RemoteSigned ローカルスクリプトおよびリモートの署名済みスクリプトを許可する
Unrestricted すべてのスクリプトを許可する

以上です。