自分の管理下にないPCにインストール済みアプリの一覧をメールで教えてもらう必要が出てきたので、方法をしらべてみました。
確認方法(32-bit Windows)
結果から言うと、32-bit Windows では、コマンドプロンプトから次のコマンドを実行するのがシンプルでした。
reg query "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall" /s | find "DisplayName"
確認方法(64-bit Windows)
64-bit Windows の場合は、さらにこちらのコマンドも実行します。
reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Uninstall" /s | find "DisplayName" reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall" /s | find "DisplayName"
これで出力されたリストをもらえばよい。
Windows のビット数によらず結果を取得するバッチファイル
これらのコマンド実行を自動的に行ってくれるバッチファイルを作るとしたら次のような実装例になります。この実装は https://qiita.com/Marukaziler/items/3f64a77b3ccef31e6536 を参考に作りました。
@echo off if "%PROCESSOR_ARCHITECTURE%" EQU "x86" goto :ARCH_X86 if "%PROCESSOR_ARCHITECTURE%" EQU "AMD64" goto :ARCH_X64 echo 未対応環境です & goto :EOF :ARCH_X64 echo x64環境です reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Uninstall" /s | find "DisplayName" reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall" /s | find "DisplayName" :ARCH_X86 reg query "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall" /s | find "DisplayName" :EOF
注意点
レジストリに情報がないアプリケーション(インストーラを使用せずにインストールしたもの)は、この方法でリストアップすることはできません。
また出力結果にはアプリケーションだけではなく、セキュリティアップデートの情報も含みます。それが不要な場合は KBxxxxx を除外するなどしてご利用ください。