Windowsでazd extension installがAccess is deniedになる問題の修正方法

Windowsで azd extension install を実行した際、拡張機能の実行ファイルを置き換える処理で「Access is denied」が断続的に発生することがあります。

この症状は、Azureのアクセス権やPowerShellの管理者権限ではなく、Windowsが終了直後の実行ファイルを一時的にロックし続けることが原因となる既知の問題です。修正はAzure Developer CLI 1.28.1に取り込まれており、2026年7月のロールアップに含まれる1.29.0へ更新すれば解消できます。(Microsoft for Developers)

まず azd version で現在のバージョンを確認し、1.28.0以前を使用している場合はAzure Developer CLIを更新してください。

目次

Windowsでazd extension installがAccess is deniedになる問題は修正済み

今回修正された問題の概要は次のとおりです。

項目内容
対象Windows上で動作するAzure Developer CLI
発生コマンドazd extension install など、拡張実行ファイルを置換する処理
主なエラーfailed to remove extension: ... Access is denied
発生頻度常にではなく断続的
原因終了した拡張実行ファイルにWindowsの一時的なロックが残る
修正内容一時的な共有違反やアクセス違反が発生した場合にファイル操作を再試行する
修正版Azure Developer CLI 1.28.1以降
推奨バージョン2026年7月ロールアップの1.29.0以降

PR #9161では、Windowsが拡張機能のプロセス終了後も実行ファイルのロックを短時間保持することがあると説明されています。従来の azd は、その間にファイルを削除または置換しようとすると、処理を即座に失敗させていました。

修正版では、Windows固有の一時的な共有違反やアクセス違反をファイルシステム処理の共通部分で検出し、再試行する仕組みが追加されています。そのため、特定の拡張機能だけを対象にした修正ではなく、拡張実行ファイルを置換する処理全体に効果があります。(GitHub)

最初にazdのバージョンを確認する

PowerShellまたはコマンドプロンプトを開き、次のコマンドを実行します。

azd version

出力例は次のようになります。

azd version 1.29.0 (commit xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)

確認結果に応じて、次のように判断してください。

確認結果対応
1.28.0以前修正が含まれていないため更新する
1.28.1PR #9161の修正を含む
1.29.0以降既知問題の修正を含む状態
azd が見つからないAzure Developer CLIのインストールまたはPATHを確認する
更新したのに古いバージョンが表示される複数の azd.exe がインストールされていないか確認する

PR #9161の修正は2026年7月22日付の1.28.1リリースノートに明記されています。その後、2026年7月29日に1.29.0が公開され、翌7月30日の公式ロールアップ記事でWindowsの「Access is denied」修正が案内されました。(GitHub)

Azure Developer CLIを修正版へ更新する

azd updateで更新する

最も簡単なのは、Azure Developer CLIに組み込まれている更新コマンドを使う方法です。

azd update

azd update は、最初にどの方法で azd がインストールされたかを検出し、winget、Chocolatey、MSI、インストールスクリプトなどの適切な更新処理へ引き渡します。

ただし、azd update は現時点でベータ機能です。組織でパッケージ管理方法が決められている場合は、インストール時と同じ方法で更新したほうが管理しやすくなります。(Microsoft Learn)

wingetでインストールした場合

Windowsパッケージマネージャーの winget を利用している場合は、次のコマンドで更新できます。

winget upgrade Microsoft.Azd

更新候補が表示されない場合は、まず現在の登録状態を確認します。

winget list Microsoft.Azd

Chocolateyでインストールした場合

Chocolateyを利用している場合は、次のコマンドを実行します。

choco upgrade azd

管理者権限が必要かどうかは、Chocolateyのインストール方法や社内端末の管理方針によって異なります。

MSIまたはインストールスクリプトを利用している場合

MSIや公式インストールスクリプトで導入している場合も、基本的には次のコマンドを利用できます。

azd update

公式ドキュメントによると、WindowsのMSIまたはスクリプトによるインストールでは、更新時にバックアップと復元を伴うインストール処理が実行されます。(Microsoft Learn)

更新後に修正版が使われているか確認する

更新が完了したら、もう一度バージョンを確認します。

azd version

少なくとも次のいずれかになっていれば、PR #9161の修正を含むバージョンです。

1.28.1
1.29.0
1.29.0より新しいバージョン

2026年7月ロールアップを基準に環境をそろえる場合は、1.29.0以上を推奨します。

その後、失敗していた拡張機能のインストールを再実行します。

azd extension install <extension-id>

たとえば拡張機能IDが example.extension の場合は、次のようになります。

azd extension install example.extension

インストール結果は次のコマンドで確認できます。

azd extension list

更新しても古いazdが起動する場合の確認方法

Windowsでは、MSI、winget、Chocolatey、インストールスクリプトなどを併用した結果、複数の azd.exe がPATHに存在することがあります。

更新に成功したように見えるのに azd version が変わらない場合は、PowerShellで次のコマンドを実行してください。

Get-Command azd -All | Select-Object CommandType, Source

コマンドプロンプトから確認する場合は、次のコマンドも利用できます。

where.exe azd

複数のパスが表示された場合、更新した azd.exe とは別のファイルが先に読み込まれている可能性があります。

たとえば、次のように異なる場所が表示されるケースです。

C:\Program Files\Azure Dev CLI\azd.exe
C:\Users\user-name\bin\azd.exe

この場合は、使用していない古いインストールを整理するか、PATHの優先順位を修正します。ファイルを直接削除するのではなく、可能な限り導入時に使用したパッケージマネージャーやアンインストーラーから削除してください。

管理者として実行するだけでは根本解決にならない

「Access is denied」と表示されると、PowerShellを管理者として起動したくなります。しかし、今回の既知問題で重要なのはNTFSのアクセス許可ではなく、実行ファイルに残った一時的なロックです。

管理者権限を付与しても、別のプロセスが保持しているファイルハンドルは自動的に解放されません。そのため、管理者として再実行すると偶然成功することはあっても、根本的な修正方法にはなりません。

次の条件に当てはまる場合は、まずバージョン更新を優先してください。

  • Windowsでのみ発生する
  • 毎回ではなく、ときどき失敗する
  • 拡張機能の新規インストール、再インストール、更新時に発生する
  • エラー内に拡張機能の実行ファイルや削除処理が表示される
  • 同じコマンドを時間を置いて再実行すると成功することがある

これらは、PR #9161で説明されている一時的なファイルロックの症状と一致します。(GitHub)

AzureのRBACエラーとは切り分けて考える

今回の「Access is denied」は、Azure上のリソースへアクセスする前に発生するローカルファイル操作のエラーです。

そのため、Azureサブスクリプションの所有者、共同作成者、閲覧者などのロールを追加しても、この既知問題は解消しません。

エラーの出方主に確認する場所
拡張実行ファイルの削除や置換で Access is deniedazd のバージョン、Windowsのファイルロック
HTTP 401、認証が必要というエラーazd auth login、認証情報
HTTP 403、権限不足というエラーAzure RBAC、対象リソースのスコープ
同じローカルファイルで毎回拒否されるNTFSアクセス許可、EDR、ウイルス対策ソフト
更新後も古い動作が続くPATH上にある複数の azd.exe

また、今回更新するのはAzure CLIの az ではなく、Azure Developer CLIの azd です。両者は別のコマンドラインツールなので、Azure CLIだけを更新しても azd extension install の問題は修正されません。(Microsoft Learn)

すぐにazdを更新できない場合の一時的な対処

社内端末の更新申請が必要など、すぐに修正版へ更新できない場合は、次の順序で一時的に対処します。

  1. 対象の拡張機能を使用しているターミナルや処理を終了する
  2. 拡張機能に関連するプロセスが終了したことを確認する
  3. 少し時間を置いてからインストールを再実行する
  4. 解消しなければターミナルを開き直す
  5. それでもロックが残る場合はWindowsを再起動する

これは一時的な回避策です。再発を防ぐには、PR #9161を含む1.28.1以降へ更新する必要があります。

拡張機能の保存フォルダーを手動で削除したり、ウイルス対策ソフトを無効にしたりする方法は、最初の対処としては推奨できません。拡張機能の状態を壊したり、端末のセキュリティポリシーに抵触したりする可能性があるためです。

1.28.1以降でもAccess is deniedが続く場合

修正版への更新後も毎回同じ場所で失敗する場合は、PR #9161とは別の原因を調査します。

デバッグログを有効にする

azd には診断ログを有効にする --debug オプションがあります。

azd extension install <extension-id> --debug

PowerShellで出力をファイルへ保存する場合は、次のように実行できます。

azd extension install <extension-id> --debug *> azd-extension-install.log

デバッグログにはユーザー名、ローカルパス、環境情報などが含まれる可能性があります。外部へ共有する場合は、機密情報が含まれていないか確認してください。Microsoftも、予期しない問題が起きた場合は --debug を付けて再実行し、診断情報を取得する方法を案内しています。(Microsoft Learn)

エラーが発生しているファイルを確認する

ログ内のパスを確認し、次のどの段階で失敗しているかを切り分けます。

  • ダウンロードしたZIPファイルの展開
  • 既存実行ファイルの削除
  • 新しい実行ファイルへの置換
  • 拡張機能設定の保存
  • 拡張機能プロセスの起動

既存実行ファイルの削除または置換で失敗している場合は、ファイルロック、ウイルス対策ソフト、EDR製品の監視を確認します。

フォルダー作成や設定ファイルの書き込みで毎回失敗する場合は、NTFSアクセス許可、フォルダー所有者、企業のフォルダーリダイレクトなどを確認します。

同時実行されているazdを終了する

別のターミナル、Visual Studio Codeのタスク、CIエージェントなどで azd が同時に動作していないか確認します。

特に次の処理が重なると、同じ拡張機能を同時に操作する可能性があります。

  • azd extension install
  • azd extension upgrade
  • 拡張機能を必要とするプロジェクトコマンド
  • 複数ジョブによる並列セットアップ

同一端末で拡張機能を更新する処理は、可能な限り直列化してください。

CIや社内端末では最低バージョンを検査する

複数のWindows端末やセルフホステッドCIエージェントを運用している場合は、担当者へ手動更新を依頼するだけでなく、起動時に最低バージョンを検査すると再発を防げます。

次のPowerShell例では、azd が1.28.1未満の場合に処理を停止します。

$requiredVersion = [version]"1.28.1"
$versionText = azd version

if ($LASTEXITCODE -ne 0) {
    throw "Azure Developer CLIを実行できません。azdのインストールとPATHを確認してください。"
}

if ($versionText -notmatch 'azd version\s+(\d+\.\d+\.\d+)') {
    throw "azdのバージョンを判定できませんでした: $versionText"
}

$currentVersion = [version]$Matches[1]

if ($currentVersion -lt $requiredVersion) {
    throw "azd $currentVersion は古いため更新が必要です。必要バージョン: $requiredVersion 以降"
}

Write-Host "azdのバージョン要件を満たしています: $currentVersion"

2026年7月ロールアップを組織の標準にする場合は、次のように最低バージョンを1.29.0へ変更します。

$requiredVersion = [version]"1.29.0"

これにより、新しく追加されたWindowsエージェントだけ古い azd を使用していた、といった環境差による再発を検出できます。

よくある疑問

1.28.1へ更新すれば十分か

PR #9161の修正だけを目的とする場合は、1.28.1で対応済みです。実際に1.28.1のリリースノートには、Windowsで拡張実行ファイルを置換する際の「Access is denied」修正が明記されています。(GitHub)

ただし、新規に更新するのであれば、追加修正を含む1.29.0以降へ更新するのが現実的です。

Windows Defenderを無効にする必要はあるか

今回の既知問題を直すためにWindows Defenderを無効にする必要はありません。まず azd を修正版へ更新してください。

1.28.1以降でも特定端末だけ毎回失敗する場合は、Defenderや組織のEDR製品によるファイル監視が関係している可能性を切り分けます。その場合も、保護機能を勝手に無効化せず、ログと対象ファイルを確認したうえで管理者へ相談します。

azd extension uninstallを実行してから入れ直すべきか

既存実行ファイルがロックされている場合、アンインストールも同じファイル操作で失敗する可能性があります。先に azd 本体を更新し、その後でインストールまたはアップグレードを再実行してください。

PCの再起動は必要か

修正版へ更新するだけで、通常はWindowsの再起動を必要としません。

更新直後も古いバージョンが表示される場合は、新しいターミナルを開いて再確認します。一時的なロックが長く残っている場合に限り、再起動を回避策として検討します。

WindowsのAccess is deniedはazd更新を最優先する

Windowsで azd extension install が断続的に「Access is denied」となる問題は、拡張実行ファイルに残る一時的なロックが原因の既知問題です。

対応手順は次のとおりです。

  • azd version で現在のバージョンを確認する
  • 1.28.0以前なら azd update などで更新する
  • 2026年7月ロールアップの1.29.0以降を利用する
  • 更新後に azd extension install を再実行する
  • 改善しない場合は --debug でログを取得する
  • PATHの重複、別プロセス、EDR、NTFSアクセス許可を順番に確認する

この症状では、Azure RBACの変更や管理者実行を先に試すのではなく、PR #9161を含むAzure Developer CLIへ更新することが最短の解決策です。

参考情報

  • Azure Developer CLI 2026年7月ロールアップ。1.27.0から1.29.0までの変更と、Windows上の拡張機能インストール修正がまとめられています。(Microsoft for Developers)
  • PR #9161。Windowsの一時的な実行ファイルロックと、共有違反・アクセス違反の再試行処理が説明されています。(GitHub)
  • Azure Developer CLI 1.28.1リリースノート。PR #9161が修正項目として明記されています。(GitHub)
  • Azure Developer CLIの公式更新手順。azd update、winget、Chocolateyなどの更新方法を確認できます。(Microsoft Learn)

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次