VS Code でアクセスが拒否されました|更新エラーと文字化けの対処

  • URLをコピーしました!
目次

はじめに

Visual Studio Code(VS Code)は、Windows・macOS・Linux に対応した広く利用されているコードエディタです。一方で、Windows 環境で使い続けていると、特有のエラーや表示の問題に遭遇する場面があります。

本記事では、利用者からの相談が多い以下の 2 つのトラブルについて、原因の切り分けと対処法を整理します。

更新時のエラー

VS Code 起動時に「アクセスが拒否されました」「Please verify there are no Visual Studio Code processes still executing」というポップアップが繰り返し表示される。

文字化け

Python などの実行結果(日本語)が VS Code のターミナルで正しく表示されない。

いずれも一度ハマると解消に時間がかかりやすい問題ですが、原因を切り分ければ対処の見通しは立てやすくなります。

この記事でわかること
  • VS Code 更新エラーのエラーメッセージ別の原因切り分け
  • 即効性のある対処(プロセス終了・管理者起動・拡張干渉の解消)
  • フォルダ権限変更による根本対処の手順
  • update.mode 設定による自動更新の挙動制御(4 つの選択肢)
  • Python の文字化けを PYTHONIOENCODING または PYTHONUTF8 で解消する方法
  • Python 3.15 以降の UTF-8 モードデフォルト化に向けた将来見通し

トラブル①: 更新時に「アクセスが拒否されました」が出る

VS Code を起動した直後や使用中、以下のようなエラーポップアップが繰り返し表示されることがあります。

症状(エラーメッセージ)

代表的なメッセージは以下のいずれか、もしくは類似のものです。

There was an error while Deleting a directory:
"C:\Users\USERNAME\AppData\Local\Programs\Microsoft VS Code\unins000.exe"
コピー先のフォルダーにファイルを作成中にエラーが発生しました:
アクセスが拒否されました。

Please verify there are no Visual Studio Code processes still executing.

「インストールをキャンセル」を押しても、次回の起動時や自動更新のタイミングで再び同じエラーが表示されてしまうケースが多く見られます。

主な原因(複数の可能性)

このエラーは、自動更新の処理が VS Code のインストールフォルダにファイルを書き込もうとした際に失敗している状態です。失敗の理由は一つに限らず、以下のいずれかが該当することが多いとされています。

原因概要
① VS Code プロセスの残存バックグラウンドで Code.exe が動いており、ファイルがロックされている
② フォルダの書き込み権限不足ユーザー権限でインストールフォルダへの書き込みが許可されていない
③ エクスプローラ拡張の干渉「Open with Code」拡張が dllhost.exe を通じてファイルをロックしている
④ アンチウイルスソフトの干渉リアルタイム保護が更新ファイルへのアクセスを一時的にブロックしている
⑤ User Installer と System Installer の混在2 種類のインストーラが同時にインストールされている

参考: Microsoft VS Code GitHub Issue #128266
“There was an error while attempting to kill any running Code.exe processes: Failed to open process: Access is denied. Please verify there are no Visual Studio Code processes still executing.”
(実行中の Code.exe プロセスを終了しようとした際にエラーが発生しました: プロセスを開けませんでした。アクセスが拒否されました)
https://github.com/microsoft/vscode/issues/128266

即効性のある対処(まず試したい手順)

根本対処に入る前に、以下の手順を順番に試すことで解消するケースが多くあります。

STEP
VS Code 関連プロセスを完全終了する

タスクマネージャー(Ctrl + Shift + Esc)を開き、以下のプロセスをすべて終了します。

  • Code.exe
  • Visual Studio Code
  • dllhost.exe(エクスプローラ拡張干渉の疑いがある場合)

その後、VS Code を再起動して更新が正常完了するか確認します。

STEP
管理者権限で VS Code を起動して更新を完了させる

VS Code のショートカットを右クリックし、「管理者として実行」を選択します。一時的に権限を引き上げた状態で更新が完了すれば、次回以降は通常起動でも問題が出にくくなります。

STEP
アンチウイルスソフトの一時除外

リアルタイム保護を一時的に停止する、もしくは VS Code のインストールフォルダを除外設定に追加することで解消することがあります。設定変更後は、セキュリティ維持のため除外設定を最小限にとどめることをおすすめします。

これらの即効対処で解消しない場合は、以下の根本対処を検討します。

対策 A(推奨): フォルダに変更権限を付与する

更新時の権限不足が原因の場合、VS Code のインストールフォルダに対して書き込み権限を付与することで解消することが期待できます。

前提: インストーラの種類によってパスが異なる

VS Code には User Installer と System Installer の 2 種類があり、それぞれインストール先が異なります。本対処を行う前に、どちらでインストールしたかを確認することをおすすめします。

インストーラ種別インストール先必要な権限
User Installer(既定・推奨)C:\Users\<ユーザー名>\AppData\Local\Programs\Microsoft VS Codeユーザー権限のみ
System InstallerC:\Program Files\Microsoft VS Code管理者権限が必要

参考: Visual Studio Code FAQ — Installation
https://code.visualstudio.com/docs/supporting/FAQ

User Installer の場合は通常、書き込み権限の問題は発生しにくい構成ですが、グループポリシーや既存ファイルの権限が引き継がれている環境では今回のエラーが発生することがあります。

手順

STEP
対象フォルダを開く

User Installer 利用時は以下のパスへ移動します。

C:\Users\%USERNAME%\AppData\Local\Programs\

%USERNAME% は自身のユーザー名に読み替えてください。エクスプローラのアドレスバーに上記の文字列を貼り付けると、自動的に展開されます。

STEP
プロパティを開く

Microsoft VS Code フォルダを右クリックし、「プロパティ」を選択します。

STEP
セキュリティ設定を変更する

「セキュリティ」タブを開き、以下の操作を行います。

  1. 「編集」ボタンをクリック
  2. 「グループ名またはユーザー名」から 「Users」(または自身のユーザー名)を選択
  3. 下部の「アクセス許可」欄で、「変更」の「許可」にチェックを入れる
  4. 「OK」をクリックして閉じる

これで権限が付与され、自動更新時のエラー回避につながります。System Installer を利用している場合は、上記操作を管理者権限で実行する必要があります。

対策 B(回避策): 自動更新の挙動を制御する

権限変更が制限された環境(会社支給 PC など)では、VS Code 側の自動更新の挙動を変更することで、エラーの発生自体を抑えられます。

VS Code の update.mode 設定では、以下の 4 つの値から選択できます。

挙動
default(既定)バックグラウンドで自動的に更新を確認・適用
manual自動更新は行わず、手動で「ヘルプ > 更新の確認」を実行した時だけ確認
startVS Code 起動時のみ更新を確認、バックグラウンド更新は行わない
none自動更新を完全に無効化

参考: Visual Studio Code Enterprise — Manage updates
“To allow users to check for updates manually while disabling automatic background checks, set the UpdateMode policy to manual”
(バックグラウンドの自動確認を無効化しつつ手動更新を許可する場合は、UpdateMode を manual に設定します)
https://code.visualstudio.com/docs/enterprise/updates

設定 UI からの変更手順

  1. VS Code を起動し、Ctrl + ,(カンマ)で設定を開く
  2. 検索ボックスに update mode と入力
  3. 設定項目を default から manual または none に変更
  4. 再起動を促されたら VS Code を再起動

完全停止ではなく更新タイミングを自分で管理したい場合は、manual を選ぶとセキュリティ更新の取りこぼしを抑えやすくなります。

settings.json で設定する場合

Ctrl + Shift + P でコマンドパレットを開き、「基本設定: 設定 (JSON) を開く」を選択して、以下を追記する方法もあります。

{
  "update.mode": "manual"
}

⚠️ 注意: none に設定すると、以後 VS Code は自動でアップデートされません。セキュリティ維持のため、manual または start を選択し、定期的に手動で更新確認を行うことをおすすめします。

トラブル②: Python の実行結果が文字化けする

Windows 版の VS Code で Python を実行した際、ターミナル出力の日本語が正しく表示されない問題は、初学者だけでなく実務でも遭遇しやすい問題です。

症状

以下のような単純なコードを実行した際、出力画面の日本語部分が読めない文字列に変換されます。

print("こんにちは")

▼ 出力結果(文字化けの例)

縺ォ縺。縺

原因

Windows のコマンドプロンプトや既定のターミナルは CP932(Shift-JIS の Microsoft 拡張) で動作する一方、Python(VS Code)は UTF-8 で文字を出力する場面があります。出力側と表示側で文字コードが一致しないことが、この文字化けの原因です。

なお、PowerShell や Windows Terminal、VS Code 統合ターミナルなど、利用するターミナルによって挙動が異なる場合もあります。

対策(推奨): 環境変数で Python の出力を UTF-8 に固定する

Web 上には「Windows の設定で『ベータ: ワールドワイド言語サポートで Unicode UTF-8 を使用』にチェックを入れる」という対処も紹介されていますが、こちらはおすすめしません。OS 全体の文字コードが変わることで、古い業務アプリや一部の VPN クライアントなどが起動しなくなる副作用が報告されているためです。

代わりに、Python の動作だけを UTF-8 に固定する 環境変数 PYTHONIOENCODING を設定する方法をおすすめします。他のアプリへの影響を抑えながら、Python の出力エンコーディングを固定できます。

設定手順

STEP
環境変数の画面を開く

Windows のスタートメニュー(検索)に env または「環境変数」と入力し、「システム環境変数の編集」を開きます。

STEP
新規作成

ウィンドウ右下の「環境変数(N)…」ボタンをクリックします。画面上部の「(ユーザー名) のユーザー環境変数」にある「新規(N)…」をクリックします。

STEP
変数を追加する
  • 変数名: PYTHONIOENCODING
  • 変数値: utf-8

以下の通り入力し、「OK」をクリックします。

STEP
VS Code を再起動

設定を反映させるため、VS Code を完全に終了してから再起動します。

設定の反映確認

VS Code の統合ターミナルで以下のコマンドを実行し、utf-8 が返ってくることを確認します。

echo $env:PYTHONIOENCODING

コマンドプロンプトの場合は以下のコマンドで確認できます。

echo %PYTHONIOENCODING%

その後、再度 Python のコードを実行すると、文字化けが解消されているか確認できます。

PYTHONIOENCODING と PYTHONUTF8 の違い

PYTHONIOENCODING は標準入出力(stdin/stdout/stderr)のエンコーディングのみを制御する環境変数です。一方、Python 3.7 以降では UTF-8 モードを有効化する PYTHONUTF8 という、より広範囲な環境変数が用意されています。

両者の主な違いは影響範囲です。

環境変数影響範囲推奨度
PYTHONIOENCODING=utf-8標準入出力のみ UTF-8 化文字化けの解消が目的なら扱いやすい
PYTHONUTF8=1標準入出力+ファイル I/O+ロケール解釈すべて UTF-8 化プロジェクト全体で UTF-8 を統一したい場合に有効

PYTHONUTF8 を使う場合の設定例

設定方法は PYTHONIOENCODING と同じく、システム環境変数で以下を追加します。

  • 変数名: PYTHONUTF8
  • 変数値: 1

設定後、Python コードを実行すると、open() などのファイル I/O も含めて UTF-8 で動作するようになります。

参考: Python 公式ドキュメント — Python UTF-8 Mode
“If set to 1, enable the Python UTF-8 Mode.”
(1 を設定すると、Python の UTF-8 モードが有効になります)
https://docs.python.org/3/using/cmdline.html#envvar-PYTHONUTF8

ファイルの読み書きで encoding='utf-8' を明示していないコードを扱う場合は、PYTHONUTF8=1 のほうが副作用の少ない動作になることが多くあります。一方、ターミナル出力の文字化けだけを直したい場合は、影響範囲の限定された PYTHONIOENCODING のほうが扱いやすい選択肢です。

文字化け対策の選択肢を比較する

文字化けへの対処法は環境変数以外にもいくつかあります。それぞれ影響範囲と副作用が異なるため、用途に応じた使い分けをおすすめします。

対策影響範囲副作用推奨度
PYTHONIOENCODING=utf-8(環境変数)当該ユーザーの Python 標準入出力ほぼなし
PYTHONUTF8=1(環境変数)当該ユーザーの Python 全体(I/O 含む)既存コードで Shift-JIS 前提のファイル読み書きがあると影響する可能性
chcp 65001(コマンド)現在のターミナルセッションのみセッションを閉じると無効化される△(一時対処向け)
Windows OS の UTF-8 設定(ベータ)OS 全体一部業務アプリ・VPN クライアントが起動しなくなる事例あり✕(非推奨)
# -*- coding: utf-8 -*-(ソースコード宣言)ソースファイルのエンコーディング解釈のみ出力時の文字化けには無効─(用途違い)

実務では、ターミナル出力の文字化け解消が目的なら PYTHONIOENCODING=utf-8、プロジェクト全体で UTF-8 を統一したいなら PYTHONUTF8=1、という使い分けが扱いやすい構成です。

なお、# -*- coding: utf-8 -*- という宣言は「ソースコード自体のエンコーディング」を Python に伝えるものであり、出力時の文字化け対策にはなりません。混同しやすいポイントのため、用途を区別することをおすすめします。

Python 3.15 以降の将来見通し(PEP 686)

Python 3.15 以降では、UTF-8 モードがデフォルトで有効化されることが PEP 686 で確定しています。これにより、Windows 環境でも追加設定なしに UTF-8 で動作するようになる見込みです。

参考: PEP 686 – Make UTF-8 mode default
“Python will enable UTF-8 mode by default from Python 3.15. Users can still disable UTF-8 mode by setting PYTHONUTF8=0 or -X utf8=0.”
(Python 3.15 から UTF-8 モードがデフォルトで有効化されます。ユーザーは PYTHONUTF8=0 または -X utf8=0 の指定で UTF-8 モードを無効化できます)
https://peps.python.org/pep-0686/

ただし、Python 3.14 以前を利用している環境では従来通り PYTHONIOENCODINGPYTHONUTF8 での明示的な設定が必要です。本記事執筆時点の安定版(Python 3.14 系)では、引き続き本記事で紹介した手順での対応が有効です。

長期的には Python のバージョンアップとともに自然に解消される問題ですが、レガシー環境や複数バージョンの Python を併用する環境では、当面は環境変数による明示的な対処を続ける構成が現実的です。

まとめ

本記事では、Windows 版 VS Code でよくある「更新エラー」と「Python 文字化け」について、原因の切り分けと対処法を整理しました。

  • 更新エラーは権限不足だけでなく、プロセス残存・拡張干渉・アンチウイルス・Installer 混在など複数の原因が考えられる。
  • 即効対処として、まず Code.exe プロセスの完全終了と管理者権限での起動を試すと解消するケースが多い。
  • 根本対処は、インストールフォルダ(User/System で異なる)への書き込み権限付与
  • 自動更新を停止したい場合は、update.modemanual または none に変更する(manual 推奨)
  • Python の文字化けは、OS 設定変更ではなく PYTHONIOENCODING=utf-8 または PYTHONUTF8=1 の環境変数で対処するのが安全
  • Python 3.15 以降は UTF-8 モードがデフォルト化されるため、長期的にはこの問題は解消される見込み

以上、最後までお読みいただきありがとうございました。

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

関西を拠点に活動する、現役インフラエンジニア。経験20年超。

大手通信キャリアにて、中〜大規模インフラ(ネットワーク・サーバ・クラウド・セキュリティ)の設計・構築およびプロジェクトマネジメントに従事。現場で直面した技術課題への対処や、最新の脆弱性情報への実務対応を、一次情報として発信しています。

保有資格
CCIE Lifetime Emeritus(取得から20年以上)/ VCAP-DCA / Azure Solutions Architect Expert

▶ 運営者プロフィール(詳細)

目次