🐚

pwshコマンド

に公開

執筆日

2025/04/08

概要

.bicepファイルで構成されたAzureのサンプルアプリをazd upでデプロイしていたら、以下のようなエラーが出ました。

Packaging services (azd package)

  (x) Failed: Packaging service backend

ERROR: error executing step command 'package --all': failed building service 'backend': failed invoking event handlers for 'prebuild', 'prebuild' hook failed with exit code: '0', Path: 'C:\Users\UserName\AppData\Local\Temp\azd-prebuild-XXXXXXXX.ps1'. : executable file not found in %PATH%

.ps1ファイルを実行できる実行ファイルがない?powershellで実行してるのに???となりました。

原因

  • azure.yamlファイルのhooksの中でwindowsosの場合にpwsh.ps1スクリプトを実行するコマンドが書かれていた
  • 自分のPCにPowershellが5系しかなく7が入っていなかった

というのが原因でした。pwshコマンドはpowershellの7系のシェルを実行するためのコマンドで、インストールされてPATHが通っていれば5系のシェルからでも呼び出せます。

対処

Microsoft Store等で最新のPowershellをインストールする。

補足

powershell 7はクロスプラットフォームで(MacやLinuxでも)動作するらしいです。
また高速かつ軽量で開発もpowershell 7に移行しているため、7の使用が推奨されています。(だったら対応OSはデフォルトで7がインストールされていてくれたらいいのに……)

ヘッドウォータース

Discussion