B3S
menu close

Windows

コマンドプロンプトでインストールソフト一覧を取得する(64bitOS対応版)


ヤス

更新日:2022/05/09


はじめまして、ヤスです。

調べるのに時間がかかった情報や(英語サイトしか情報がない情報など)、情報がないので自作したモノなどを紹介していきます。

※動作検証環境:Microsoft Windows 64bit [Version 6.1.7601]

WindowsPCのインストールソフトを取得したい

Windowsマシンのインストールソフトの一覧を取得する必要があったので、コマンドプロンプト(バッチファイル)で対応しようと思い調べたところ、regコマンド(reg query)でレジスト内のUninstall情報から取得できることがわかりました。

Uninstall情報のあるレジストリパス
・HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

OSが64bit版の場合は、Uninstall情報のあるレジストリパスはもう一箇所あるので注意!

上記のレジストリパスから情報を取得して、実際にインストールされているソフトと比較した所、なぜかソフトの数が合わない・・・。

調べた結果、どうやらOSが64bit版の場合、上記のパスは64bit対応のソフト情報のみ格納されてようです。

32bit対応のソフト情報は別の箇所に保存されているので、追加で情報を取得する必要があります。

32bit対応のUninstall情報のあるレジストリパス
・HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall

インストールソフト取得バッチファイル

64bitOSに対応したインストールソフトを取得するバッチファイル(.bat形式で保存)は以下になります。

ソースコード説明

・reg queryで取得できる情報のなか、ソフト名の記載されているDisplayNameの項目のみ取得しています

・セキュリティ用の更新ソフトは不要なので、「更新、修正、KB」などが含まれている場合は無視しています

・64bitと32bitの両方に対応している場合、ソフト名が重複するので削除しています