SEブログ
【PowerShell】プログラムと機能にあるアプリの一覧を表示する
こんにちは!SE ブログの相馬です。
今回は、Windows 10 のプログラムと機能に一覧表示されているアプリケーション(プログラム)を PowerShell を使い、データとして出力してみました。以降、アプリケーションは長いのでアプリと略します。
どういう用途で使えるかと言うと、既存の PC と同じ構成で別のメーカーの PC でマスターイメージを作る際、インストールされているアプリを同一にする為に必要になるかと思います。
また、既存の PC 分のパラメータシートが無い場合には、この方法を使って素早く作成する事ができますので構築時に役に立つでしょう。
スポンサーリンク
プログラムと機能に表示されるアプリ
まず、PC にインストールしたアプリは、[コントロールパネル] 内にある、[プログラムと機能] から確認する事ができます。
ここで強調しておきたいのは、[プログラムと機能] に表示されるのはインストールした分のみであり、ビルトインされたアプリは表示されません。
ビルトインされたアプリは PowerShell で確認する事ができます。アンインストールなど含めて、詳細は以下の記事で説明しております。
スポンサーリンク
レジストリを見てアプリの一覧を確認する
それでは、実際にアプリの一覧を PowerShell で取得する際に、どの方法で取ったら良いのでしょうか。
いくつかあるのですが、ここで予め説明したいのは、[プログラムと機能] と全く同じ情報を取得する事は困難だという事です。ネットで色々調べてみましたが、全く同じ情報を取得しているスクリプトは見当たりませんでした。
その中でも一番精度の高い方法としては、レジストリの情報を取得する事だという事が分かりました。以下、レジストリの場所になります。
スクリプトでは、2 つある上のほうを使えば良いでしょう。こっちのほうがアプリの情報が多いからです。
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
ちなみにスクリーンショットを取っておきました。
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall の場合
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall の場合
PowerShell で表示する
それではレジストリで取得した情報を元に、コマンドレットを使い情報を絞って表示させてみました。
リストにはアプリ名、バージョン、作成元が含まれておりますが、含まれていないものもあるかもしれません。確かに OneNote が表示されていませんね。OneNote はインストールしたアプリではあるのですが、レジストリには無いので取得ができないようです。こういうは目検で確認していくしかないかもしれません。
PS C:\Users\user1> Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | ` Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | ` Format-Table 実行結果 DisplayName DisplayVersion Publisher InstallDate ----------- -------------- --------- ----------- FavBinEdit 1.2.3 1.2.3 wabisabi 20190203 WinPcap 4.1.3 4.1.0.2980 Riverbed Technology, Inc. Wireshark 2.6.5 64-bit 2.6.5 The Wireshark developer community, https://www.wireshark.org Google Toolbar for Internet Explorer 1.0.0 Google Inc. 20190127 Microsoft Visual C++ 2008 Redistributable - x86 9.0.30729.4148 9.0.30729.4148 Microsoft Corporation 20180825 Google Toolbar for Internet Explorer 7.5.8231.2252 Google Inc. Google Update Helper 1.3.33.23 Google Inc. 20190127 Microsoft Visual C++ 2017 Redistributable (x64) - 14.12.25810 14.12.25810.0 Microsoft Corporation
ちなみにテキストで出力してみました。こうすればパラメータシートの元として使う事ができますね。
Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | ` Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | ` Format-Table –AutoSize > C:\Temp\InstalledPrograms.txt
スポンサーリンク
まとめ
いかがでしょうか。PowerShell で [プログラムと機能] にあるインストールしたアプリの一覧を PowerShell で表示してみました。
やってみて思ったのは、最初は簡単に全量と表示できるのかと思ったのですが、そんなに甘くはなかった事が分かりました。(汗)
とはいえ、レジストリにアプリの一覧の情報がある事が分かりましたし、そこから Select-Object で情報を絞れば一覧が出せる事が分かったので良かったです。
それでは最後までお読みいただきありがとうございました!