SEブログ

【PowerShell】プログラムと機能にあるアプリの一覧を表示する

 

こんにちは!SE ブログの相馬です。

 

 

 

今回は、Windows 10 のプログラムと機能に一覧表示されているアプリケーション(プログラム)を PowerShell を使い、データとして出力してみました。以降、アプリケーションは長いのでアプリと略します。

 

 

どういう用途で使えるかと言うと、既存の PC と同じ構成で別のメーカーの PC でマスターイメージを作る際、インストールされているアプリを同一にする為に必要になるかと思います。

 

 

また、既存の PC 分のパラメータシートが無い場合には、この方法を使って素早く作成する事ができますので構築時に役に立つでしょう。

 

 

 

スポンサーリンク

プログラムと機能に表示されるアプリ

 

 

まず、PC にインストールしたアプリは、[コントロールパネル] 内にある、[プログラムと機能] から確認する事ができます。

 

 

ここで強調しておきたいのは、[プログラムと機能] に表示されるのはインストールした分のみであり、ビルトインされたアプリは表示されません。

 

 

 

ビルトインされたアプリは PowerShell で確認する事ができます。アンインストールなど含めて、詳細は以下の記事で説明しております。

 

 

 

【Windows10】不要なアプリをアンインストールする方法

 

 

 

スポンサーリンク

レジストリを見てアプリの一覧を確認する

 

 

それでは、実際にアプリの一覧を 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 で情報を絞れば一覧が出せる事が分かったので良かったです。

 

 

それでは最後までお読みいただきありがとうございました!