Windows 10や11でインストールされているアプリの一覧を確認したい場合、Windowsの設定の「アプリと機能」から目視で確認することが多いですが、PCの数が多いと一台ずつ画面を表示して確認するのは骨が折れます。
そのような時は、コマンドでインストール済みアプリの一覧をテキスト出力することで、簡単に情報を収集することができます。
そこでここではWindows 10を例に、インストールされているアプリの一覧をコマンドで収集する方法を紹介します。
目次
コマンドでアプリ一覧を収集するには
コマンドでインストール済みアプリの一覧を出力する場合、いくつかの方法がありますが、レジストリから情報を抽出するのがもっとも精度が高いでしょう。
具体的には、以下の3つのレジストリキー配下から情報を収集します。
- HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
- HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall
- HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
Windowsコマンドで収集する
Windowsコマンドでレジストリからインストール済みアプリの情報を収集する場合は、「reg query」コマンド利用します。
> reg query "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall" /s | find "DisplayName"
> reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall" /s | find "DisplayName"
> reg query "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" /s | find "DisplayName"
上のコマンドでは、出力された情報からアプリ名だけを表示させるために、パイプ処理でfindコマンドを実行してある程出力される情報を絞り込んでいますが、限界があります。
そこで、より見やすく出力したい場合は、PowerShellコマンドを実行する方法がおすすめです。
PowerShellコマンドで収集する
PowerShellコマンドでレジストリからインストール済みアプリの情報を収集する場合は、「Get-ItemProperty」コマンドレットを利用します。
> Get-ItemProperty HKLM:Software\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Format-Table –AutoSize
> Get-ItemProperty HKLM:SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Format-Table –AutoSize
> Get-ItemProperty HKCU:Software\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Format-Table –AutoSize
また、対象のレジストリから一括で情報収集するなら、次のような実行方法もあります。
> Get-ChildItem -Path('HKLM:SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall','HKCU:SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall','HKLM:SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall') | % { Get-ItemProperty $_.PsPath | Select-Object DisplayName, DisplayVersion, Publisher }
上のコマンドを実行すると、以下の画像のように成形されて必要な情報だけを収集することができます。
あとがき
企業などで、複数のWindowsマシンを管理している場合、資産管理ツールなどを利用していれば、インストール済みアプリなどの情報を自動的に収集してくれますが、そうでない場合は、ここで紹介している方法で情報収集すれば作業効率をアップできるでしょう。ご活用あれ。