記事には広告が含まれています
miseを使ってWindowsでNode.jsをインストールしようとしたら、突然こんなエラーが出て詰まっていませんか?
failed rename: C:\AppData\Local\mise\installs\node\.tmpdMWBQu\node-v22.x.x-win-x64
-> C:\AppData\Local\mise\installs\node\22.x.x: アクセスが拒否されました。(os error 5)
「最初は普通にインストールできたのに、なぜか急にダメになった…」という状況に陥った方も多いと思います。
なぜ最初は成功して2回目以降が失敗するのかという根本原因から、4つの解決策まで順番に解説します。
もくじ
「mise」でNode.jsがインストールできないエラーの概要と再現状況
今回発生したエラーは、以下の流れで起きます。
- node 24 と node 22 を
mise installで正常にインストール mise uninstall node@22を実行してnode 22を削除- 以降、
mise install node@22(またはどのバージョン)を実行しても os error 5(アクセス拒否) で失敗
「アンインストールしてから壊れた」というのが共通パターンです。
なぜ最初は成功して、2回目以降は失敗するのか
ここが最も重要なポイントです。
miseがNode.jsをインストールするときの処理は、大まかに次の4ステップです。
- ZIPをダウンロードして
downloadsフォルダへ保存 installs/node/以下に22.x.xフォルダを先に作成.tmp??????という一時フォルダに展開.tmp??????/node-v22.x.x-win-x64→22.x.xへリネーム ← ここで失敗
最初の成功理由
最初のインストール時は installs/node/ ディレクトリ自体が存在していませんでした。そのため Windows Defenderの監視対象外 の状態でした。
ところが一度ファイルが作成されてスキャンが走ると、DefenderはそのフォルダをPCの保護のために監視対象に追加します。以降は リネーム操作(一時フォルダ→バージョン名フォルダ)をDefenderが掴んでしまい、os error 5が発生します。
アンインストールバグとの組み合わせで悪化する
さらに、mise Windows版にはアンインストールのバグ(GitHub Discussion #5260)があります。mise uninstall を実行するとバージョンフォルダ本体は消えますが、関連する参照ファイルやジャンクションが残留します。この残骸が「リネーム先のフォルダが既に存在する」状態を作り出し、エラーが確実に起きる状況を作っています。
残骸ファイルの掃除と、Defenderの干渉解消という2つの問題が絡み合っているため、一時フォルダを手動でリネームしようとしても根本解決にはなりません。
「mise」でNode.jsがインストールできない場合の解決策
状況に応じて試す順番があります。まず解決策①から試し、解消しない場合は②→③→④の順で進めてください。
解決策① installs\nodeフォルダの残骸を掃除して再インストール
最も手軽な方法です。アンインストール後に残った不要フォルダを削除してからインストールし直します。
# 残骸の22.x.xフォルダを削除(バージョン番号は実際のものに変更してください)
Remove-Item "$env:LOCALAPPDATA\mise\installs\node\22.14.0" -Recurse -Force
# .tmp系フォルダも念のため削除
Get-ChildItem "$env:LOCALAPPDATA\mise\installs\node" `
| Where-Object { $_.Name -like ".tmp*" } `
| Remove-Item -Recurse -Force
Get-ChildItem "$env:LOCALAPPDATA\mise\installs\node"
24.x.xフォルダなど、残したいバージョンのみが表示されていればOKです。
mise install node@22
解決策② installs\nodeフォルダを丸ごとリセット
解決策①でも失敗する場合は、nodeのインストール先を完全に削除して作り直します。
実行するとインストール済みのNode.jsがすべて消えます。削除前に mise list で現在入っているバージョンを控えておきましょう。
# nodeのインストールフォルダをすべて削除
Remove-Item "$env:LOCALAPPDATA\mise\installs\node" -Recurse -Force
# 必要なバージョンを入れ直す
mise install node@24
mise install node@22
mise use --global node@24 などでグローバル設定を更新しておくと、どのフォルダでもデフォルトバージョンが使えます。
解決策③ インストール先パスを変更してDefenderの監視を回避
①②を試してもまた再発する場合、Windows Defenderが監視しにくいパスにmiseのデータ置き場を移すのが有効です。環境変数 MISE_DATA_DIR でインストール先を変更できます。
# PowerShellプロファイルに恒久設定を追記
Add-Content $PROFILE "`n`$env:MISE_DATA_DIR = 'C:\mise-data'"
# プロファイルを再読み込み
. $PROFILE
# 改めてインストール
mise install node@22
以下のコマンドでプロファイルファイルを先に作成してください。
New-Item -Path $PROFILE -ItemType File -Force
解決策④ IT部門にWindows Defender除外を申請する(企業PCの場合)
企業PCで上記①〜③を試せない、または再発が続く場合、Defenderのスキャン除外設定を追加してもらうのが唯一の根本解決です。
- 申請内容:
C:\Users\[ユーザー名]\AppData\Local\miseをスキャン除外対象に追加 - 理由:Defenderのリアルタイム保護がファイルのリネーム操作をブロックし、開発ツールmiseのNode.jsインストールが失敗するため
- リスク根拠:miseはOSSの開発ツールで、バイナリはGitHub経由で取得。悪意あるコードは含まれない
申請前にDefenderの管理状態を確認しておくと、IT部門への説明がスムーズになります。
# 現在のDefender管理状態を確認
Get-MpComputerStatus | Select-Object -Property IsTamperProtected, AMRunningMode
# 除外設定の現状確認
Get-MpPreference | Select-Object -Property ExclusionPath, ExclusionProcess
Windows環境の「mise」でNode.jsがインストールできない原因と解決策まとめ

Defenderが初回インストール後からフォルダを監視し始めたことと、mise Windows版のアンインストールバグと組み合わさることで、再インストールが完全にブロックされる状態になっていました。
| 原因 | 対処法 |
|---|---|
| アンインストール後の残骸フォルダが残っている | 解決策①:残骸を手動削除してから再インストール |
| installs\nodeフォルダ全体が壊れた状態 | 解決策②:フォルダを丸ごと削除してリセット |
| Windows DefenderがPATH変更をブロックし続けている | 解決策③:MISE_DATA_DIRを別パスに変更 |
| 企業PCでDefender設定を自分で変更できない | 解決策④:IT部門にスキャン除外を申請 |
まずは解決策①の残骸フォルダ削除から試してみてください。多くのケースでこれだけで解消できます。
- os error 5(アクセス拒否)が発生する仕組み
- なぜ初回インストールだけ成功するのか
- mise Windows版アンインストールバグとの関係
- 残骸フォルダ削除・完全リセット・パス変更・Defender除外申請の4つの解決策
参考リンク
参考
mise 公式サイトmise-en-place
参考
mise uninstall bug discussion #5260GitHub

