このエントリーをはてなブックマークに追加


PowerShellでインストール済アプリケーション一覧を取得する

PowerShellを使って、マシンにインストール済のアプリケーション一覧を取得(表示)する方法を以下に記します。


Win32_Product

Get-WmiObectでWin32_Productクラス内の情報を表示させます。

Get-WmiObject Win32_Product

Win32_Productだけではインストールされたアプリケーション一覧を取得できません。

Get-WmiObject Win32_Productだけを実行すると以下のように表示されます。

PS D:\> Get-WmiObject Win32_Product


<省略>

IdentifyingNumber : {8F6D5610-B5D2-4CF3-90ED-584ABC8B946A}
Name              : Oracle VM VirtualBox 5.0.14
Vendor            : Oracle Corporation
Version           : 5.0.14
Caption           : Oracle VM VirtualBox 5.0.14
<省略>

見にくいのでSelect-Objectを使ってみます。

PS D:\> Get-WmiObject Win32_Product | Select-Object Name,Vendor,Version,Caption

Name                                                           Vendor                  Version        Caption
----                                                           ------                  -------        -------
<省略>
Oracle VM VirtualBox 5.0.14                                    Oracle Corporation      5.0.14         Oracle VM Virt...
Visual Studio Tools for the Office system 3.0 Runtime          Microsoft Corporation   9.0.30729      Visual Studio ...
Microsoft Visual C++ 2010  x86 Redistributable - 10.0.40219    Microsoft Corporation   10.0.40219     Microsoft Visu...
Update for Japanese Microsoft IME Postal Code Dictionary       Microsoft Corporation   16.0.1171.1    Update for Jap...
Update for Japanese Microsoft IME Trending Words Dictionary    Microsoft Corporation   16.0.1515.1    Update for Jap...
Update for Japanese Microsoft IME Standard Dictionary          Microsoft Corporation   16.0.1404.1    Update for Jap...
Microsoft Visual Studio 2005 Tools for Office Runtime          Microsoft Corporation   8.0.60940.0    Microsoft Visu...
<省略>

レジストリから取得する

上記のWin32_Productクラスからはすべてのアプリケーション情報をとれないのでレジストリから取得してみます。
尚、GUIのインストール済アプリケーション一覧で表示されないアップデートプログラムも表示されます。
対象のレジストリは、HKLM, HKCUを対象としています。

Get-ChildItem -Path(
'HKLM:SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall',
'HKCU:SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall') | 
% { Get-ItemProperty $_.PsPath | Select-Object DisplayName, DisplayVersion, Publisher }

実際に実行すると以下のように表示されます。

PS D:\>  Get-ChildItem -Path(
>>  'HKLM:SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall',
>>  'HKCU:SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall') |
>>  % { Get-ItemProperty $_.PsPath | Select-Object DisplayName, DisplayVersion, Publisher }

DisplayName                                                                            DisplayVersion         Publisher
-----------                                                                            --------------         ---------
Windows ドライバ パッケージ - Broadcom (BtwSerialBus) System  (03/06/2013 12.0.0.6100) 03/06/2013 12.0.0.6100 Broadcom
7-Zip 15.12                                                                            15.12                  Igor P...
FFFTP Ver.1.98g2                                                                                              FFFTP ...
GIMP 2.8.16                                                                            2.8.16                 The GI...
Google Chrome                                                                          48.0.2564.97           Google...
Visual Studio 2005 Tools for Office Second Edition Runtime                                                    Micros...
Mozilla Firefox 43.0.4 (x86 ja)                                                        43.0.4                 Mozilla
Mozilla Maintenance Service                                                            43.0.4.5848            Mozilla
<省略>

上記の出力結果をCSVに出力したい場合は、以下のようにExport-CSVコマンドレットを使用します。
出力ファイル名はapps.csvにしています。

Get-ChildItem -Path(
'HKLM:SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall',
'HKCU:SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall') |
% { Get-ItemProperty $_.PsPath | Select-Object DisplayName, DisplayVersion, Publisher } |
Export-Csv -NoTypeInformation -Encoding Default apps.csv

以上、PowerShellでアプリケーション一覧を取得する方法でした。



トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-01-28 (木) 23:13:06