PCにインストールされているすべてのソフトウェアを一覧表示する


30

Windowsに組み込まれているもので、コンピューターにインストールされているすべてのソフトウェアを、スプレッドシートにコピー/貼り付けできる形式で一覧表示できるものはありますか?これを実行できるソフトウェアがあることは知っていますが、何もインストールできません。可能な場合はバッチファイルを使用しない方が良いと思いますが、それが唯一の方法になると思います。理想的には、[アプリケーションの追加と削除]フォームの(展開されていない)ビューに表示されるのと同じ情報を出力できるようになります。


Windowsインストーラーデータベースを照会するバッチファイルを作成することもできますが、すべてをキャッチできるとは限りません。

この情報をレジストリに照会するアプリを作成しました。アプリはそれを希望する形式に変換しませんが、コードの一部をコピーして簡単に変更することができます。ソースへのリンクは次のとおりです。pulsarsoftware.org/Projects/ProcessManager.html
MaQleod

1
Windows PowerShellでは、次を試すことができますGet-WmiObject -Class Win32_Product。詳細はこちらをご覧ください。
リシマハラジ

回答:


40

コンソールを起動して、次を入力します。

wmic product get name,version

しばらく時間がかかりますが、インストールされているプログラムの完全なリストが表示されます。WMICはWindows Management Instrumentationのコンソールバージョンであり、Windows 2000以降で利用可能です。ここここの手順に従って、WMICにXML形式で出力するように指示することができます。これは、もう少し便利かもしれません。ただし、呼び出すだけwmic product get nameでアプリケーション名のリストが表示され、簡単にテキストエディタに貼り付けてスプレッドシート形式に変換できます。

または、次を入力します。

wmic /output:C:\InstallList.txt product get name,version

これにより、プログラムのリストを含むTXTファイルが出力されます。必要に応じて、スプレッドシートに貼り付けることができます。

ソース:http : //helpdeskgeek.com/how-to/generate-a-list-of-installed-programs-in-windows/


また、csv.xslファイルを使用して、出力を結果のCSVリストにフォーマットできます。

wmic /output:C:\InstallList.csv product get /format:csv.xsl

または、結果のHTMLテーブルを作成するhtable.xslファイル:

wmic /output:C:\InstallList.htm product get /format:hform.xsl

2
> InstallList.txtを最後に追加すると、出力を含むテキストファイルが取得されます。現在のディレクトリは、ファイルが作成される場所です。また、バージョンの後にInstallDateを追加できます。これにより、製品がインストールされた日付が表示されます。これは、製造元がインストールしたプログラムを整理するのに便利です。このテキストファイルをExcelで開き、必要に応じて少し並べ替えることができます。
ジョンダイアー

8
悲しいことに、プログラムと機能に表示されるのと同じリストを生成しないようです。前者には表示されないアプリケーションがいくつかあり、後者には存在しないアプリケーションがいくつかあります。wmicリストに表示されないアイテム:インストール済みのSteamゲーム、Notepad ++、Winmerge、Googleのミュージックマネージャー。[プログラムと機能]に表示されませんアイテム:Javaの自動アップデータ、CAPICOM用セキュリティ更新プログラム(KB931906) 。管理者CMDから実行しようとしましたが、生成されたリストは同じでした。
チュイム

1
:StackOverflowののこの質問はちょっと理由を説明するstackoverflow.com/questions/673233/...
Chuim

私は同様のコマンドを使用しましたが、それはいくつかのソフトウェア名を与えていません。例。プロプロ、クリンクなど。それを含めるにはどうすればいいですか?
サティヤプラカシュ14年

1
あなたが取得している場合はInvalid Class 0x80041010 Error、あなたがに行くことができるAdd/Remove Windows ComponentsとチェックManagement and Monitoring Tools
KyleMit

8

実行wmic product getして、インストールされているソフトウェアのリストを取得します。これは、プログラムの追加/削除とまったく同じリストである必要があります。

おそらく特定の形式で出力することができますが、私は試していません。

wmic product get /?出力の書式設定を含むパラメータを確認するために使用します。ここに含めようとしましたが、書式設定は正しくありませんでした。)


ハ-とにかくあなたを支持しました。なぜなら、XMLで出力するためのリンクを見つけて含めたからです。よくやった。:)
マークアレン

私は取得しています出力ではありません、正確にプログラムのリストを追加/削除するもの。なぜアイデアがありますか?
ジョエルB

すべてのコンポーネントパーツが含まれているようです。
マークアレン

ユーザーがソフトウェアをインストールする方法はありますか?おそらくユーザー関連の問題が原因で、すべてのソフトウェアがリストに含まれているわけではありません。私はこのマシンのみを使用していますが。
サティヤプラカシュ14年

5

他の人が述べたように、Win32_ProductオブジェクトのWMIクエリでこの情報を取得できます。PowerShellは、必要に応じてCSVファイルにダンプします。

Get-WmiObject -Class "Win32_Product" | Export-CSV (Join-Path $home "Win32_Product.csv")

ただし、Win32_Productの問題検索する必要があります。すべてのガムドロップやロリポップではありません。


特にPowershellが関係する場合、物事に対する代替アプローチを常に楽しんでいます。
アルバン

トリックを実行する別のPowerShellコマンドを次に示します。Get-ItemProperty HKLM:\ Software \ Wow6432Node \ Microsoft \ Windows \ CurrentVersion \ Uninstall * | Select-Object DisplayName、DisplayVersion、Publisher、InstallDate | Format-Table –AutoSize "> outputfile"を追加して、出力を保存できます。もっとここを参照してください:howtogeek.com/165293/...かここに:theitbros.com/...
YOSHメートル

@yoshmのコマンドを試す他の人のために、アンインストールと*の間に別の\が必要です。コマンドは次のようになりますGet-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Format-Table
stephenwade

4

メニューで明示的にインストールManagement and Monitoring ToolsAdd/Remove Windows Componentsていない限り、WMICはサーバー上で動作しません。

別の解決策は、レジストリに移動し、次のようにしてすべてのアンインストール可能なプログラムを確認することです。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

値を表示するには、それぞれ個別にクリックする必要があるため、代わりに、Uninstallフォルダーを右クリックして[ エクスポート ]を選択できます。エクスポート範囲選択されたブランチのみを含むように設定されていることを確認します。

選択されたブランチ

その後.reg、notepad ++でファイルを開くことができますが、各アプリケーションに関する多くの追加情報を取得することになります。

.reg

次の正規表現と照合することで開始しない すべての行を削除できます。"DisplayName"

^(?!"DisplayName").+

次に、あなたが削除することができますいずれかの文字列 "DisplayName"または"上のマッチングにより、次の正規表現を

("DisplayName"="|")

その後、次の正規表現で一致させることにより、重複する行を削除できます。

^(.*)(\r?\n\1)+$

または、行をアルファベット順に並べ替えてから、空白のを削除することができます


3

私が見つけた最も簡単な方法は、piriformのクリーナーを実行することです。
ツール->アンインストール-> "テキストファイルに保存"にボタンがあります


1
OPは何もインストールできないため、組み込みのソリューションを求めました(OK、CCleanerポータブルがありますが、それはポイントではありません)。出力はコピーと貼り付けをサポートする必要があります
-nixda

1
OPによって課せられた制限を理解していますが、このメソッドは実際にプログラムと機能で示されるように完全なリストを生成しました(メインの回答に対する私のコメントwmicはそれを達成しませんでした)。
チュイム

0

Windows 7では、PowerShellスクリプトを使用できます。

Startボタンをクリックpowershellして検索フィールドに入力して、PowerShellを開きます。

次に、PowerShellウィンドウで次のコマンドを入力します。

Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Format-Table –AutoSize

不要な場合は、DisplayName、DisplayVersionなどのフィールドを削除できます。

出力をファイルに保存する場合は、リダイレクトを使用します。

Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Format-Table –AutoSize > C:\temp\AllInstalledPrograms.txt

0

以前に言及されていない他の2つの非コマンドラインソリューションは次のとおりです。

  1. MyUninstaller-NirSoftのフリーウェアプログラムで、アンインストールのほかに、インストールされたすべてのソフトウェアの包括的なリストをHTMLにエクスポートし、多くの追加情報を含めることができます。ポータブルであるという利点があります。「組み込み」ではありませんが、USBドライブから実行できます。ここで見つけることができます。

  2. Belarc Advisor-コンピューターのハードウェアとソフトウェアのセキュリティ分析と包括的なインベントリを行うフリーウェア(個人用)プログラム。こちらから入手できます。残念ながら、インストールする必要があるため、OPのニーズを完全に満たすわけではありませんが、同じ質問を持ち、インストールできる他の人のニーズを満たすことができます。


0

C#でエンコードされたバージョンは、レジストリを介してプログラムをインストールしました

using Microsoft.Win32;
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;


namespace SoftwareInventory
{
    class Program
    {
        static void Main(string[] args)
        {
            //!!!!! Must be launched with a domain administrator user!!!!!
            Console.ForegroundColor = ConsoleColor.Green;
            StringBuilder sbOutFile = new StringBuilder();
            Console.WriteLine("DisplayName;IdentifyingNumber");
            sbOutFile.AppendLine("Machine;DisplayName;Version");

            //Retrieve machine name from the file :File_In/collectionMachines.txt
            //string[] lines = new string[] { "NameMachine" };
            string[] lines = File.ReadAllLines(@"File_In/collectionMachines.txt");
            foreach (var machine in lines)
            {
                //Retrieve the list of installed programs for each extrapolated machine name
                var registry_key = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall";
                using (Microsoft.Win32.RegistryKey key = RegistryKey.OpenRemoteBaseKey(RegistryHive.LocalMachine, machine).OpenSubKey(registry_key))
                {
                    foreach (string subkey_name in key.GetSubKeyNames())
                    {
                        using (RegistryKey subkey = key.OpenSubKey(subkey_name))
                        {
                            //Console.WriteLine(subkey.GetValue("DisplayName"));
                            //Console.WriteLine(subkey.GetValue("IdentifyingNumber"));
                            if (subkey.GetValue("DisplayName") != null && subkey.GetValue("DisplayName").ToString().Contains("Visual Studio"))
                            {
                                Console.WriteLine(string.Format("{0};{1};{2}", machine, subkey.GetValue("DisplayName"), subkey.GetValue("Version")));
                                sbOutFile.AppendLine(string.Format("{0};{1};{2}", machine, subkey.GetValue("DisplayName"), subkey.GetValue("Version")));
                            }
                        }
                    }
                }
            }
            //CSV file creation
            var fileOutName = string.Format(@"File_Out\{0}_{1}.csv", "Software_Inventory", DateTime.Now.ToString("yyyy_MM_dd_HH_mmssfff"));
            using (var file = new System.IO.StreamWriter(fileOutName))
            {

                file.WriteLine(sbOutFile.ToString());
            }
            //Press enter to continue 
            Console.WriteLine("Press enter to continue !");
            Console.ReadLine();
        }


    }
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.