【30日間無料体験】AI初心者が無料で基礎知識を学ぶなら「Audible」

Windows環境の「mise」でNode.jsがインストールできない原因と解決策【os error 5対応】

記事には広告が含まれています

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がインストールできないエラーの概要と再現状況

今回発生したエラーは、以下の流れで起きます。

  1. node 24 と node 22 を mise install で正常にインストール
  2. mise uninstall node@22 を実行してnode 22を削除
  3. 以降、mise install node@22(またはどのバージョン)を実行しても os error 5(アクセス拒否) で失敗

「アンインストールしてから壊れた」というのが共通パターンです。

なぜ最初は成功して、2回目以降は失敗するのか

ここが最も重要なポイントです。

miseがNode.jsをインストールするときの処理は、大まかに次の4ステップです。

  1. ZIPをダウンロードして downloads フォルダへ保存
  2. installs/node/ 以下に 22.x.x フォルダを先に作成
  3. .tmp?????? という一時フォルダに展開
  4. .tmp??????/node-v22.x.x-win-x6422.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フォルダの残骸を掃除して再インストール

最も手軽な方法です。アンインストール後に残った不要フォルダを削除してからインストールし直します。

STEP.1
PowerShellを管理者権限で開く
スタートメニューで「PowerShell」を右クリック →「管理者として実行」を選択してください。
STEP.2
残骸フォルダを削除する
PowerShell

# 残骸の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

STEP.3
残っているフォルダを確認する
PowerShell

Get-ChildItem "$env:LOCALAPPDATA\mise\installs\node"

24.x.xフォルダなど、残したいバージョンのみが表示されていればOKです。

STEP.4
再インストールする
Terminal

mise install node@22

解決策② installs\nodeフォルダを丸ごとリセット

解決策①でも失敗する場合は、nodeのインストール先を完全に削除して作り直します。

注意

実行するとインストール済みのNode.jsがすべて消えます。削除前に mise list で現在入っているバージョンを控えておきましょう。

PowerShell

# 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

# 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のスキャン除外設定を追加してもらうのが唯一の根本解決です。

IT部門への申請内容
  • 申請内容:C:\Users\[ユーザー名]\AppData\Local\mise をスキャン除外対象に追加
  • 理由:Defenderのリアルタイム保護がファイルのリネーム操作をブロックし、開発ツールmiseのNode.jsインストールが失敗するため
  • リスク根拠:miseはOSSの開発ツールで、バイナリはGitHub経由で取得。悪意あるコードは含まれない

申請前にDefenderの管理状態を確認しておくと、IT部門への説明がスムーズになります。

PowerShell(確認のみ・変更なし)

# 現在の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