ホーム > コマンドプロンプト・バッチファイル リファレンス
PowerShellスクリプト実行時に発生するExecutionPolicyエラーを回避する方法として、バッチファイルからスクリプトを起動する方法を紹介します。
はじめに
PowerShellではセキュリティの観点から、スクリプト実行に制限(ExecutionPolicy)がかかっていることがあります。
そのため、ローカルで作成した .ps1 ファイルを実行しようとするとエラーになることがあります。
例えば以下のようなケースです。
- スクリプトがブロックされる
- 実行ポリシーにより起動できない
- 管理者権限が必要になる場合がある
開発中やローカル環境では、この制限が障害になることがあります。
ExecutionPolicyについて詳しく知りたい場合は以下を参考にしてください。
バッチファイル
今回紹介する方法は、バッチファイルからPowerShellを起動し、一時的に実行ポリシーをバイパスする方法です。
@echo off powershell -ExecutionPolicy Bypass -File "%~dp0sample.ps1"
コマンドについて
実行するコマンドについて簡単に説明します。
-ExecutionPolicy Bypass
このオプションにより、PowerShellの実行ポリシー制限を一時的に無効化します。
システム設定を変更せず、そのプロセス内だけ制限を回避できます。
-File “%~dp0sample.ps1”
%~dp0 はバッチファイル自身のあるフォルダーを指します。
そのため、バッチファイルと同じフォルダにあるPowerShellスクリプトが実行されるため、ここにスクリプト(例では、sample.ps1)を置いておく必要があります。
この方法のメリット
- システム設定を変更しない
- 配布用バッチとして使いやすい
- 相対パスで扱えるため移植性が高い
注意点
- セキュリティポリシーを回避するため、信頼できるスクリプトのみ使用すること
- セキュリティが低くなるので、本番環境での使用は推奨しません
まとめ
PowerShellのExecutionPolicyエラーは開発時によく遭遇する問題ですが、バッチファイルから -ExecutionPolicy Bypass を使うことで簡単に回避できます。
開発時などに便利なのでご活用頂ければと思います。
リンク




コメント