【バッチファイル】PowerShell実行エラー回避バッチ


この記事はプロモーションを含みます。

PowerShell

ホーム > コマンドプロンプト・バッチファイル リファレンス

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 を使うことで簡単に回避できます。
開発時などに便利なのでご活用頂ければと思います。

コメント

タイトルとURLをコピーしました