Windows 10には電卓などの標準搭載のアプリケーションが用意されている。これらの多くはUWP化されているが、スタートメニューの「Windowsアクセサリ」などにWin32アプリも置かれている。このうちUWP標準アプリは、Ver.1803(RS4)あたりから、アンインストールが可能なものが増えてきた。スタートメニューの上で右クリックすると、メニュー項目にアンインストールが表示される。基本的には、これで削除するのが安全だ。
UWPアプリの一覧を調べる
しかし、UWP標準アプリの中には、スタートメニューに表示されないものも少なくない。そこで、今回は標準搭載のUWPアプリについて調べた。
PowerShellのAppx関連のコマンドについては、本連載で以前解説した(「Windows 10のUWPアプリのインストール状態をコマンドラインで調べる」)。
今回はこの記事を読んでいただいたことを前提に、この記事で紹介したコマンドの使い方などは省略して話を進める。
Windows10とともにインストールされるAPPXパッケージ(これをProvisioned Appx パッケージという)は、「Get-AppxProvisionedPackage」というコマンドで取得できる。
Get-AppxProvisionedPackage -online
これにより、得られたのが標準搭載のUWPアプリの一覧が下の表だ。
なお、表にも記したようにここには削除しないほうがいいパッケージも当然あるので十分注意してほしい。原則GUIでアンインストールが可能なものは削除しても問題なく、あとからMicrosoftストアで再インストールが可能だ。
このGet-AppxProvisionedPackageではインストール前の情報(インストールイメージ)を元に表示を行うものであり、「Microsoft.Dism.Commands.AppxPackageObject」という形式のオブジェクトを出力する。PowerShellでは、コマンドレットの出力オブジェクトの形式などを調べる場合には、「get-member」というコマンドレットをパイプの出力先に置く。
これに対して現在、インストールされているAPPXパッケージに関しては、get-appxpackageというコマンドがある。特定のパッケージについての情報のみを出力するには、以下のようにして、パッケージ名を指定するが、このとき、ワイルドカード文字である「*」が使え、一部を省略させることができる。たとえば、BingWeather(天気アプリ)なら以下のようになる。
Get-AppxPackage -name "*Weather*"
ここで、オプションとして「-PackageTypeFilter Bundle,Main」を指定してみると、実はパッケージが2ヵ所にインストールされていることがわかる。
Get-AppxPackage -name "*Weather*" -PackageTypeFilter Bundle,Main
このうち、片方はBundleパッケージと呼ばれるものだ。1つのパッケージに2つ以上のインストールパッケージが含まれていて、複数フォルダーにインストールされる。このうち、メイン以外のパッケージがBundleパッケージだ。この複数のパッケージは、NameプロパティとPackageNameプロパティは同一で、Bundleパッケージのほうは、IsBundleというプロパティがTrueになる。
とりあえずパッケージを扱うレベルでは、Bundleは気にする必要はなく、-PackageTypeFilterもMainのみを指定しておけばよい。ただし、インストール先(InstallLocationプロパティ)を見るような場合には、Bundleパッケージのほうも気に掛ける必要がある。
1つのパッケージ内にアーキテクチャごとに
複数のパッケージが含まれるケースがある
1つのパッケージに複数のパッケージが含まれるのは、プロセッサ種別(プロセッサーアーキテクチャー)ごとに機械語バイナリーが異なるため、別のパッケージとして分離する必要があり、Micrsoftストアでこれを配布するときに1つのパッケージにしなければならないからだ。
現在のAPPXでは、 x86/x64/ARM/ARM64とCPUに依存しないNaturalという4つのカテゴリーがある。それぞれCPUとWindowsの組合せで決まる。
ここでいうアーキテクチャーはCPUの物理的な種類というよりも、実行先の物理的なCPUと環境を意味する。x86とx64は物理的なCPUとしては同一でも、インストールされているWindowsが32bit版か、64bit版で区別される。
インストール時、CPUアーキテクチャに依存しないNaturalアーキテクチャーが指定されたパッケージがBundleとして含まれていると、インストール先が複数に分かれる。Naturalというプロセッサアーキテクチャーは存在しないが、プログラムが複数のアーキテクチャーで共有可能なデータ(たとえば画像やテキストなど)を含む場合には、これらを仮想的な「Naturalアーキテクチャ」として扱い、実行先アーキテクチャにかかわらず、インストールする。こうすることで、共用するデータなどを複数のサブパッケージに含めなくて済むようにしている。
さて、このGet-AppxPackageが出力するオブジェクトは、「Microsoft.Windows.Appx.PackageManager.Commands.AppxPackage」(これを以下AppxPackageオブジェクトと表記する)というものになる。
その出力を見れば、インストール先や種別などを知ることができる。Appx関連のコマンドには、パッケージのアンインストールを行う「Remove-AppxPackage」というコマンドがあるのだが、これが実行可能なのは、AppxPackageオブジェクトの「NonRemovable」というプロパティがFalse(偽)になっているもののみで、True(真)となっているパッケージはコマンドからは削除できない。
Get-AppxPackage "*Weather*" | Remove-AppxPackage -AllUser
とすると、パッケージをアンインストール可能だが、利用には十分気をつけてほしい。

この連載の記事
-
第469回
PC
Windows Updateの27年 悪役だった頃から改良が進んで、徐々に目立たない存在に -
第468回
PC
2025年のWindowsどうなる!? Windows Insider Programの状況をあらためて見る -
第467回
PC
Copilot+ PCのNPUでカメラを処理する「Windows Studio Effects」 その内容や効果は? -
第466回
PC
PowerToysの最近の新機能には、複数アプリを指定位置に起動する「ワークスペース」や新規作成のカスタマイズがある -
第465回
PC
WindowsのPowerShellからBluetoothデバイスを調べる -
第464回
PC
Windows 10のサポート切れまで1年を切った さてWindows 10マシンをどうする? -
第463回
PC
Windows Terminal Preview版でSixelグラフィックスを実際に表示させてみる -
第462回
PC
Windows Terminal Preview版でSixelグラフィックスを扱う -
第461回
PC
Copilot+ PCを買ってみたが、「今焦って買う必要はない」のかもしれない -
第460回
PC
Windowsでsftpを使う -
第459回
PC
WSL 2.4.4ではtar形式でのディストリビューションが配布でき、企業での利用が容易になってきた - この連載の一覧へ