# Windowsアプリの削除: インストーラー、パッケージ、ポータブル

Windowsアプリを1つ外すとベンダーのウィザードが始まり、別のものは設定から消え、3つ目にはアンインストールボタンがありません。削除方法を選ぶ前に、このコピーがどうインストールされたかを特定します。デスクトップのショートカットを消しても、その入り口がなくなるだけです。

## インストールの形を特定する

従来のインストーラーは、たいていアンインストール項目を登録し、プログラムファイルを入れます。サービス、スタートアップ項目、ファイルの関連付けも作ることがあります。パッケージアプリはWindowsのパッケージ管理を使います。ポータブルなソフトウェアはたいていフォルダから動きますが、設定をどこに置くかは製品次第です。

| このコピーの形 | 最初の削除経路 | その経路が意味しないこと |
| --- | --- | --- |
| EXE/MSIインストーラー | インストールされているアプリ、コントロールパネル、またはベンダーのアンインストーラー | フォルダを消しても登録とサービスは取り消されない |
| Windowsが管理するアプリパッケージ | スタートメニュー、またはインストールされているアプリ | Storeのアカウント履歴は、今インストールされていることを示さない |
| 展開したポータブルコピー | ベンダーのポータブル向け手順 | フォルダから動くことは、データがすべてそこにある証明にならない |

[Microsoftのアンインストールのガイド](https://support.microsoft.com/en-us/windows/uninstall-or-remove-apps-and-programs-in-windows-4b55f974-2cc6-2d2b-d092-5905080eaf98)は、スタート、設定、コントロールパネルの経路を説明しています。使える経路はアプリによって違います。配布元もインストールの形とは別です。WinGetで入れたアプリでも、ベンダーのアンインストーラーに依存することがあります。

## 実際に使っているコピーを特定する

ユーザーへのインストール、マシン全体へのインストール、ポータブルビルド、プレビューは、同じ名前を共有し得ます。インストール項目の名前、バージョン、発行元を確認し、動いているプログラムのファイルの場所を見ます。似たアイコンと古いショートカットがあると、違うコピーを狙いやすいです。

VS Codeが例です。インストーラーと展開したZIPでは、[公式のアンインストールガイド](https://code.visualstudio.com/docs/setup/uninstall)の削除手順が違います。ZIPのプログラムフォルダを消しても、別に保存された設定と拡張機能は自動では消えません。そのあともアプリが起動するなら、削除が失敗したと決める前に、パスが別のコピーのものかを確認します。

## ポータブルデータの規則を読む

VS Codeの[ポータブルモード](https://code.visualstudio.com/docs/editor/portable)は、ZIPビルドの隣の`data`フォルダにユーザーデータと拡張機能を置きます。ユーザーディレクトリを使う通常の展開ビルドとは違います。移動や削除の前に、ポータブルモードが有効か、その設定、拡張機能、ワークスペースの状態が必要かを確認します。

ほかのポータブルアプリは、AppData、レジストリ、スタートアップの場所へ書くことがあります。VS Codeの設計は、別の製品の挙動を決める根拠になりません。製品の手順に従います。文書化された削除経路がないなら、不確かな外部データは残します。ブランドに似たフォルダ名は、独占的な所有の証明ではありません。

<figure class="blog-diagram">
  <picture>
    <source media="(max-width: 900px)" srcset="/img/blog/windows-windows-app-installation-types-en-mobile.webp" type="image/webp" width="768" height="1180">
    <img src="/img/blog/windows-windows-app-installation-types-en.webp" width="1360" height="454" loading="lazy" alt="このコピーがどう管理されているかを特定する">
  </picture>
  <figcaption>インストールの形が削除の仕組みを選びます。個人データと共有データは、別に判断します。</figcaption>
</figure>

## WinGetは入り口であり、万能のアンインストーラーではない

先にインストール項目を一覧します。下の1つ目は情報を読み、2つ目は削除を行うので、対象のIDを確認してから実行します。例のIDは、一覧の正確なIDに置き換えます。

```powershell
winget list
winget uninstall --id Vendor.ExampleApp --exact
```

[WinGetのアンインストールのドキュメント](https://learn.microsoft.com/en-us/windows/package-manager/winget/uninstall)は、ほかの経路でインストールされたアプリも見つけられると説明しています。`--purge`の挙動はポータブルパッケージに関するもので、すべてのアプリの個人データを消す約束ではありません。ベンダーの確認と、求められた再起動を最後まで行います。ウィザードが出たことは、削除の始まりにすぎません。

## プログラムの削除と残したデータを分けて確認する

ブックマーク、エディターの拡張機能、チャット履歴、データベース、生成した文書は、意図して残ることがあります。削除の前に製品の書き出しやバックアップのツールを使い、書き出したコピーを開いて確認します。Storeの購入履歴とダウンロード履歴は、ローカルのインストール済みアプリ一覧ではなく、アカウントに属します。

アンインストールのあと、一覧を更新し、元のプログラムのパスとプロセスを調べます。自分の選択どおりに個人データが残っているかを確認します。同じ名前のプロセスを全部終了するのではなく、プロセスのパスと所有者を確認します。共有ランタイムとベンダーのコンポーネントは、別のアプリにまだ使われていることがあります。空のフォルダツリーだけが、削除成功の基準ではありません。

関わるインストールを特定したあと、[アンインストールの失敗](/ja/windows/blog/windows-uninstall-fails)か[残るデータ](/ja/windows/blog/what-apps-leave-after-uninstall)へ進みます。


Canonical: https://mole.fit/ja/windows/blog/windows-app-installation-types
