pslaboが試したことの記録

はてなダイヤリーからはてなブログに引っ越してきました

この日記は現在実行中の減量記録を含む個人的なメモとして始めましたが、最近はコンピュータやガジェット、ハック、セキュリティネタのほうがメインになっております。

はてなダイヤリー時代はカテゴリ分けが適当だったのですが、これはそのうち直します。


Windowsにインストール済みのアプリケーション一覧をコマンドで取得する

自分の管理下にない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 を除外するなどしてご利用ください。