Daftar semua perangkat lunak yang diinstal pada PC


30

Apakah ada sesuatu yang tertanam pada Windows yang memungkinkan saya untuk membuat daftar semua perangkat lunak yang diinstal pada komputer dengan cara yang dapat disalin / ditempelkan ke spreadsheet? Saya tahu ada perangkat lunak yang dapat melakukan ini, tetapi saya tidak dapat menginstal apa pun. Saya lebih suka tidak menggunakan file batch jika memungkinkan, tetapi saya membayangkan itu akan menjadi satu-satunya cara. Idealnya, saya akan dapat menampilkan informasi yang sama seperti yang ditunjukkan pada tampilan (tidak diperluas) dari Formulir Tambah / Hapus Program.


Anda mungkin dapat menulis file batch untuk meminta basis data Windows Installer, tetapi itu mungkin tidak menangkap semuanya.

Saya menulis sebuah aplikasi yang menanyakan registri untuk informasi ini, dan meskipun aplikasi tidak memasukkannya ke format yang Anda inginkan, bagian dari kode dapat disalin dan dimodifikasi dengan mudah untuk melakukan itu, berikut adalah tautan ke sumbernya: pulsarsoftware.org/Projects/ProcessManager.html
MaQleod

1
Di Windows PowerShell, Anda dapat mencoba: Get-WmiObject -Class Win32_Product. Lihat di sini untuk detail lebih lanjut.
rishimaharaj

Jawaban:


40

Jalankan konsol Anda dan ketik:

wmic product get name,version

Butuh beberapa saat, tetapi Anda akan mendapatkan daftar lengkap dari program yang diinstal. WMIC adalah versi konsol dari Instrumentasi Manajemen Windows, tersedia dari Windows 2000 dan seterusnya. Dengan mengikuti instruksi di sini dan di sini , Anda dapat memberi tahu WMIC untuk membuat output dalam format XML, yang mungkin sedikit lebih nyaman bagi Anda. Namun hanya dengan menelepon wmic product get nameakan memberi Anda daftar nama aplikasi, yang Anda dapat dengan mudah menyalin tempel ke editor teks dan mengonversi ke format spreadsheet.

Atau, masukkan:

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

Ini akan menampilkan file TXT dengan daftar program. Anda kemudian dapat menempelkannya ke dalam spreadsheet, jika diinginkan.

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


Anda juga dapat menggunakan file csv.xsl untuk memformat output menjadi daftar hasil CSV:

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

atau file htable.xsl untuk membuat tabel hasil HTML:

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

2
Jika Anda menambahkan> InstallList.txt hingga akhir, Anda akan mendapatkan file teks yang berisi output. Direktori saat ini di mana Anda berada adalah di mana file akan dibuat. Anda juga dapat menambahkan, InstallDate setelah versi. Ini akan menunjukkan tanggal produk diinstal. Ini berguna untuk memilah program manufaktur yang diinstal. Anda harus dapat membuka file teks ini di Excel dan mengurutkannya sedikit jika diperlukan.
John Dyer

8
Sayangnya itu tampaknya tidak menghasilkan daftar yang sama seperti yang ditunjukkan dalam Program dan Fitur: ada beberapa aplikasi yang tidak muncul di yang pertama dan beberapa yang melakukannya tetapi tidak ada di yang terakhir. Beberapa item yang tidak muncul dalam wmicdaftar: Steam games saya yang diinstal, Notepad ++, Winmerge, Google's Music Manager . Item yang tidak muncul di Program dan Fitur: Java Auto Updater, Pembaruan Keamanan untuk CAPICOM (KB931906) . Saya mencoba menjalankannya dari Administrator CMD tetapi daftar yang dihasilkan sama.
Chuim

1
Pertanyaan ini di StackOverflow menjelaskan mengapa: stackoverflow.com/questions/673233/…
Chuim

Saya menggunakan perintah serupa tetapi itu belum memberikan beberapa nama s / w. Contoh. Propos, denting, dll. Bagaimana memasukkan dan sejenisnya?
Satya Prakash


8

Jalankan wmic product getuntuk mendapatkan daftar perangkat lunak yang diinstal, itu harus persis daftar yang sama dengan menambah / menghapus program.

Anda seharusnya bisa mendapatkan output dalam format tertentu, tapi saya belum mencobanya.

(Gunakan wmic product get /?untuk melihat parameter termasuk pemformatan output, saya mencoba memasukkannya di sini tetapi pemformatannya kurang tepat.)


Ha - Saya tetap memilih Anda karena Anda menemukan dan menyertakan tautan untuk membuatnya menjadi output dalam XML secara khusus. Kerja bagus. :)
Mark Allen

Output yang saya dapatkan tidak persis dengan daftar Add / Remove Programs. Ada ide mengapa?
Joel B

Tampaknya termasuk semua bagian komponen.
Mark Allen

Apakah ada cara untuk menginstal perangkat lunak oleh pengguna mana pun? Mungkin masalah yang berhubungan dengan pengguna menyebabkan tidak semua perangkat lunak masuk dalam daftar. Padahal saya hanya menggunakan mesin ini.
Satya Prakash

5

Seperti yang disebutkan orang lain, Anda bisa mendapatkan info ini dengan kueri WMI untuk objek Win32_Product. PowerShell bahkan akan membuangnya ke file CSV untuk Anda jika Anda mau.

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

Namun, Anda harus mencari masalah Win32_Product . Tidak semua permen karet dan permen lolipop.


Saya selalu menikmati pendekatan alternatif untuk hal-hal, terutama ketika itu melibatkan Powershell.
Alban

Berikut ini adalah perintah PowerShell lain untuk melakukan trik: Dapatkan-ItemProperty HKLM: \ Software \ Wow6432Node \ Microsoft \ Windows \ CurrentVersion \ Uninstall * | Select-Object DisplayName, DisplayVersion, Penerbit, InstallDate | Format-Tabel –AutoSize Anda dapat menambahkan "> outputfile" untuk menyimpan output. Lihat lebih lanjut di sini: howtogeek.com/165293/… atau di sini: theitbros.com/…
yosh m

Catatan untuk orang lain yang mencoba perintah @ yoshm, Anda memerlukan \ antara Uninstall dan *. Perintahnya harus:Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Format-Table
stephenwade

4

WMIC tidak akan berfungsi di Server kecuali Anda telah menginstalManagement and Monitoring ToolsAdd/Remove Windows Components secara eksplisit di menu .

Solusi lain adalah membuka Registry dan melihat semua Program yang Tidak Dapat Diinstal dengan masuk ke:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

Anda harus mengklik masing-masing satu per satu untuk melihat nilainya, jadi alih-alih, Anda dapat mengeklik kanan pada Uninstallfolder dan memilih Ekspor . Pastikan bahwa Rentang Ekspor diatur untuk hanya menyertakan Cabang Terpilih :

Cabang yang Dipilih

Kemudian Anda dapat membuka .regfile di notepad ++, tetapi Anda akan mendapatkan banyak informasi tambahan pada setiap aplikasi:

.reg

Anda dapat menyingkirkan semua baris yang tidak dimulai dengan "DisplayName" mencocokkan dengan regex berikut :

^(?!"DisplayName").+

Kemudian Anda dapat menghapus string "DisplayName" atau "dengan mencocokkan pada regex berikut :

("DisplayName"="|")

Kemudian Anda dapat menghapus garis duplikat dengan mencocokkan pada regex berikut :

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

Atau Anda bisa mengurutkan garis-garis sesuai abjad dan kemudian menghapus yang kosong


3

Cara termudah yang saya temukan adalah menjalankan ccleaner piriform.
Ini memiliki tombol di Tools -> Uninstall -> "save to text file"


1
OP meminta built-in solusi karena ia tidak bisa menginstal apapun (ok, ada CCleaner portabel, tapi thats tidak titik). Dan hasilnya harus mendukung copy & paste
nixda

1
Saya memahami batasan yang diberlakukan oleh OP, tetapi metode ini sebenarnya menghasilkan daftar selengkap yang ditunjukkan oleh Program dan Fitur (seperti komentar saya pada jawaban utama katakan, wmictidak mencapai itu).
Chuim

0

Pada Windows 7 Anda dapat menggunakan skrip PowerShell:

Buka PowerShell dengan mengklik Start tombol dan mengetik powershellke dalam kolom pencarian.

Kemudian masukkan perintah berikut di Jendela PowerShell:

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

Anda dapat menghapus salah satu bidang: DisplayName, DisplayVersion, dll. Jika Anda tidak membutuhkannya.

Jika Anda ingin menyimpan output ke file, gunakan pengalihan:

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

0

Dua solusi non-command-line lainnya yang tidak disebutkan sebelumnya adalah:

  1. MyUninstaller - program freeware dari NirSoft yang, selain menghapus instalan, juga dapat mengekspor ke HTML daftar lengkap semua perangkat lunak yang diinstal yang menyertakan banyak info tambahan. Ini memiliki keuntungan menjadi portabel. Meskipun bukan "bawaan", Anda dapat menjalankannya dari drive USB. Anda dapat menemukannya di sini .

  2. Belarc Advisor - program freeware (untuk penggunaan pribadi) yang melakukan analisis keamanan dan inventaris yang komprehensif untuk perangkat keras dan perangkat lunak komputer Anda. Ini tersedia di sini . Sayangnya, Anda harus menginstalnya, sehingga tidak sepenuhnya memenuhi kebutuhan OP, tetapi dapat memenuhi kebutuhan orang lain yang memiliki pertanyaan yang sama dan dapat menginstal.


0

Versi yang dikodekan dalam c # program yang diinstal melalui registri

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();
        }


    }
}
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.