Windows 10でRemove-AppxPackageを使用してアプリをアンインストールする際に発生するエラー0x80073CFAを修正する方法

Windows 10 (特にビルド 1703 以降) には、通常のルートではアンインストールできない組み込みアプリが多数含まれています。PowerShellでRemove-AppxPackage を使用して、恐ろしい「 HRESULT 0x80073CFA 削除失敗」というポップアップ メッセージが表示された場合は、あなただけではありません。これらのアプリはこの時点で Windows に組み込まれており、システムが手放そうとしません。奇妙なのは、アプリが「Windows の一部」として表示され、どうやってもユーザーごとにアンインストールできないと表示されることです。その場合は、裏側を調べるなど、もう少し創造的になる必要があります。このガイドでは、基本的に、Windows アプリ データベースを直接編集することで、これらの頑固なアプリを強制的に削除する方法について説明します。少しハッキーですが、多くの場合必要です。コマンドライン操作がいくつか行われ、基礎となるアプリ レジストリが変更されることを想定してください。注意して、必ず最初にバックアップするか、復元ポイントを設定してください。Windows ではこれが困難になっているためです。

組み込みアプリを削除する際に発生する「HRESULT 0x80073CFA」エラーの修正方法

方法1: PsexecとSQLiteを使用してアプリの「受信トレイ」ステータスを変更する

この方法は、Windowsのアプリデータベースのフラグを反転させるだけです。その仕組みは?データベースのIsInbox値を変更して、Windowsがそのアプリをコアアプリだと認識しないようにし、その後、再度削除を試みるというものです。Windowsにそのアプリが必須ではないと認識させるようなものです。ただし、設定によってはこの方法がうまくいかない場合があります。あるマシンでは数回試すだけでうまくいったのに、別のマシンではうまくいかなかったりするのです。Windowsは当然ながら、この方法をできるだけ複雑にする必要があるからです。

  1. まず、SysinternalsのPSToolsを入手します。ZIPファイルをダウンロードし、C:\PSに解凍します。インストールを面倒にしたくない場合は、そこからポータブル版を直接実行できます。また、 DB Browser for SQLiteをダウンロードしてインストール(またはポータブル版を入手)してください。
  2. 管理者としてコマンド プロンプトを開き、psexec を解凍したフォルダーに移動します。
    cd C:\PS
  3. このコマンドを実行して、SYSTEM レベルのコマンド プロンプトを取得します。
    psexec.exe -i -s -d cmd.exe

    これにより、システム全体のデータベースを編集するために必要な SYSTEM 権限で実行される新しいウィンドウが開きます。

  4. 新しいウィンドウで、SYSTEMコンテキスト経由でアプリの実行ファイルを実行します。パスは設定によって異なりますが、通常は以下のようになります。
    "C:\Program Files\DB Browser for SQLite\DB Browser for SQLite.exe"

    または、ポータブル版をご利用の場合は、解凍した場所に移動してください。SYSTEMプロンプト内のPowerShellまたはコマンドラインから実行する必要がある場合があります。

  5. DB ブラウザが開いたら、「データベースを開く」をクリックして次の場所に移動します。
    %ProgramData%\Microsoft\Windows\AppRepository\StateRepository-Machine.srd

    これはアプリ情報が保存されるシステム データベースです。

  6. 「データの参照」タブに移動し、パッケージテーブルを選択します。
  7. アプリをPackageFullNameで検索します。例えば、 を検索しますMicrosoft. XboxGameCallableUI_1000.16299.15.0_neutral_neutral_c5as4n4uizeyw。IsInbox 列を 1 から 0 に変更しますこれにより、Windows にアプリがコアコンポーネントではなくなったことが通知されます。
  8. 「変更を書き込む」をクリック(または)して、この変更を保存しますCTRL + S。理由はよく分かりませんが、Windows が変更を受け入れるには、データベースに少し手を加える必要がある場合があります。
  9. データベースを閉じて、PowerShell またはコマンド プロンプトに戻り、削除コマンドを実行します。
    Remove-AppxPackage Microsoft. XboxGameCallableUI_1000.16299.15.0_neutral_neutral_c5as4n4uizeyw

    すべてが正しく行われた場合、HRESULT エラーは発生しなくなり、Windows は正常にそのアプリをデタッチします。

このプロセス全体は少し予測不可能です。マシンによっては1回でうまくいく場合もありますが、他のマシンでは繰り返したり再起動したりする必要があるかもしれません。鍵となるのは、データベースのIsInboxフラグを操作することです。興味深いことに、このフラグはWindows 10 Anniversary Update(1607)から存在しており、通常はロックされている組み込みアプリの秘密のスイッチのようなものです。

Windows は物事を複雑にするのが大好きなので、再起動したり、他のいくつかの設定を切り替えたり (ストア アプリの自動更新をオフにするなど) すると、物事をロックアウトしたり完全に解除したりできるケースがあります。

まとめ

  • システム データベースを変更する前に、必ずシステムをバックアップしてください (復元ポイントまたはディスク イメージ)。
  • PSTools をダウンロードし、C:\PS に解凍します。
  • psexec.exe -i -s -d cmd.exeそのフォルダから実行します。
  • SQLite 用の DB Browser を起動して開きますStateRepository-Machine.srd
  • アプリを検索し、IsInbox を0 に変更して保存し、再度削除を試みてください。

まとめ

これらの組み込みアプリを削除するのは簡単ではありませんが、DB Browserなどのツールとシステムレベルのコマンドを組み合わせてアプリデータベースにアクセスすれば、うまくいく場合があります。設定は毎回同じではないので、試行錯誤が必要になることを覚悟してください。ただし、システムファイルへの変更には常にリスクが伴うので、事前にバックアップを取り、慎重に進めてください。これで、空き容量を増やしたり、Windowsを少しクリーンアップしたりしようとしている人の時間を数時間短縮できることを願っています。正直なところ、これは思った以上に難しい作業です。頑張ってください!