Windowsでインストール済みアプリの一覧をコマンドで収集する方法

Windowsでインストール済みアプリの一覧をコマンドで収集する方法。

Windows 11でインストールされているアプリの一覧を確認したい場合、Windowsの設定の「アプリと機能」から目視で確認することが多いですが、PCの台数が多いと一台ずつ画面を開いて確認するのは骨が折れます。そのような時は、コマンドでインストール済みアプリの一覧を出力するのがおすすめです。

そこでここでは、Windows 11でインストール済みアプリの一覧をコマンドで収集する方法を解説します。

インストール済みアプリの情報を収集できるコマンド

コマンドでインストール済みアプリの一覧を出力する方法としては、以下のような方法があります。

  • Get-Packageコマンドレットを使った方法(デスクトップアプリ)
  • Wingetコマンドを使った方法(デスクトップアプリとUWPアプリ)
  • レジストリ情報から収集する方法(デスクトップアプリ)
  • Get-AppPackageコマンドレットを使った方法(UWPアプリ)

一見Wingetコマンドを使った方法が、デスクトップアプリとUWPアプリの両方を情報をまとめて収集できてよさげに見えますが、Wingetコマンドを使った方法はインターネットに接続できないとエラーとなってしまう場合があるため、より汎用性を考えるなら、デスクトップアプリの情報はレジストリから、UWPアプリの情報はGet-AppPackageコマンドレットを使って収集するのがおすすめです。

デスクトップアプリの情報を収集

インストール済みデスクトップアプリの情報を収集する方法としては、レジストリ情報から収集するのがおすすめで、具体的なコマンドは管理者としてターミナル(PowerShell)を起動して以下のように実行します。

PS> Get-ChildItem -LiteralPath 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall','HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall','HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall'| Get-ItemProperty -ErrorAction Ignore | ForEach-Object {'desktop' + ',' + $_.displayname + ',' + $_.displayversion} | Where-Object { $_ -notmatch '^desktop,,' }

上のコマンドを実行すると、インストール済みのデスクトップアプリがカンマ区切りの文字列として以下のように出力されます。

desktop,7-Zip 26.00 (x64),26.00
desktop,Mozilla Firefox (x64 ja),150.0
desktop,Mozilla Thunderbird (x64 ja),150.0
desktop,Mozilla Maintenance Service,150.0
desktop,Canon MG7700 series MP Drivers,1.00
desktop,LibreOffice 25.8.4.2,25.8.4.2
desktop,Microsoft .NET Host - 8.0.26 (x64),64.104.50421
desktop,Microsoft Visual C++ 2022 X64 Minimum Runtime - 14.42.34438,14.42.34438

UWPアプリの情報を収集

インストール済みUWPアプリ(ストアアプリ)の情報を収集する方法としては、Get-AppPackageコマンドレットを使った方法がおすすめで、具体的なコマンドは管理者としてターミナル(PowerShell)を起動して以下のように実行します。

PS> Get-AppxPackage | ForEach-Object {'uwp' + ',' + $_.Name + ',' + $_.Version}

上のコマンドを実行すると、インストール済みのUWPアプリがカンマ区切りの文字列として以下のように出力されます。

uwp,Microsoft.ZuneMusic,11.2601.11.0
uwp,Microsoft.WindowsAppRuntime.1.7,7000.785.2325.0
uwp,Microsoft.Windows.Photos,2026.11020.20001.0
uwp,Microsoft.WindowsAppRuntime.1.8,8000.806.2252.0
uwp,Microsoft.MicrosoftEdge.Stable,146.0.3856.72

すべてのインストールアプリの情報を収集

上で紹介したコマンドを使ってデスクトップアプリとUWPアプリの情報をまとめて収集すれば、マシンにインストールされているすべてのアプリの情報を一覧で出力できます。

以下のコマンドでは、デスクトップアプリとUWPアプリの情報を収集してまとめ、50音順に並べ替えて表示しています。

PS> $allapps = Get-ChildItem -LiteralPath 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall','HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall','HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall' | Get-ItemProperty -ErrorAction Ignore | ForEach-Object {'desktop' + ',' + $_.displayname + ',' + $_.displayversion} | Where-Object { $_ -notmatch '^desktop,,' }
PS> $allapps += Get-AppxPackage | ForEach-Object {'uwp' + ',' + $_.Name + ',' + $_.Version}
PS> $allapps | ConvertFrom-Csv -Header 'category','Name','version' | Sort-Object Name

あとがき

企業などで、複数のWindowsマシンを管理している場合、資産管理ツールなどを利用していれば、インストール済みアプリなどの情報を自動的に収集してくれますが、そうでない場合でも、コマンドによる情報収集を駆使することで作業効率をアップできるでしょう。ご活用あれ。