PC'deki kurulu tüm yazılımları listele


30

Bilgisayarda yüklü tüm yazılımları bir elektronik tabloya kopyalanabilecek / yapıştırılabilecek şekilde listelememe izin verecek bir şey var mı? Bunu yapabilen bir yazılım olduğunu biliyorum ama hiçbir şey yükleyemiyorum. Mümkünse bir toplu iş dosyası kullanmamayı tercih ederim, ancak bunun tek yol olacağını düşünüyorum. İdeal olarak, Program Ekle / Kaldır Formunun (genişletilmemiş) görünümünde gösterildiği gibi aynı bilgileri verebilecektim.


Windows Installer veritabanını sorgulamak için bir toplu iş dosyası yazabilirsiniz, ancak bu her şeyi yakalayamayabilir.

Bu bilgi için kayıt defterini sorgulayan bir uygulama yazdım ve uygulama bunu istediğiniz formata koymazken, kodun bir kısmı kopyalanabilir ve bunu yapmak için kolayca değiştirilebilir, işte kaynağın bağlantısı: pulsarsoftware.org/Projects/ProcessManager.html
MaQleod

1
Windows PowerShell'de, şunları deneyebilirsiniz: Get-WmiObject -Class Win32_Product. Daha fazla bilgi için buraya bakınız.
rishimaharaj

Yanıtlar:


40

Konsolunuzu ateşleyin ve şunu yazın:

wmic product get name,version

Biraz zaman alıyor, ancak yüklü programların tam listesini göreceksiniz. WMIC, Windows 2000'den ve daha sonra kullanılabilen Windows Yönetim Araçları'nın konsol sürümüdür. Buradaki ve buradaki yönergeleri izleyerek WMIC'e XML biçiminde çıktısını alabilirsiniz, bu sizin için biraz daha uygun olabilir. Ancak, yalnızca çağrı yapmak wmic product get name, yapıştırmayı bir metin düzenleyiciye kolayca kopyalayıp elektronik tablo biçimine dönüştürebileceğiniz uygulama adlarının bir listesini alır.

Alternatif olarak, şunu girin:

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

Bu program listesini içeren bir TXT dosyası çıkartacaktır. İsterseniz bunu bir elektronik tabloya yapıştırabilirsiniz.

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


Ayrıca çıktıyı CSV sonuç listesine biçimlendirmek için csv.xsl dosyasını kullanabilirsiniz:

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

veya bir HTML sonuç tablosu oluşturmak için htable.xsl dosyası:

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

2
Sonuna> InstallList.txt eklerseniz, çıktıyı içeren bir metin dosyası alırsınız. Bulunduğunuz dizin, dosyanın oluşturulacağı yerdir. Ayrıca sürümünden sonra InstallDate ekleyebilirsiniz. Bu, ürünün kurulduğu tarihi gösterir. Bu üretim yüklü programları sıralamak için kullanışlıdır. Bu metin dosyasını Excel'de açabilmeli ve gerekirse bunları biraz sıralayabilmelisiniz.
John Dyer,

8
Ne yazık ki, Programlar ve Özellikler bölümünde gösterildiği gibi aynı listeyi oluşturuyor gibi görünmüyor: ilkinde görünmeyen birkaç uygulama var, ancak sonuncusu yok. wmicListede görünmeyen bazı öğeler : Yüklü Steam oyunlarım, Notepad ++, Google Müzik Yöneticisi . Programlar ve Özellikler'de gösterilmeyen öğeler: Java Otomatik Güncelleyici, CAPICOM Güvenlik Güncelleştirmesi (KB931906) . Bir Yönetici CMD'sinden çalıştırmayı denedim ama oluşturulan liste aynıydı.
Chuim

1
StackOverflow'taki bu soru nedenini açıklıyor: stackoverflow.com/questions/673233/…
Chuim

Benzer bir komut kullandım ancak bu birkaç s / w adı vermedi. Örnek. Propros, clink, vb. Nasıl ve benzerleri nasıl dahil edilir?
Satya Prakash


8

wmic product getYüklü yazılımların listesini almak için çalıştırın , program ekleme / kaldırma ile tam olarak aynı listede olmalıdır .

Belli bir formatta çıktı almak için sözde alabilirsiniz, ancak denemedim.

( wmic product get /?Çıktı biçimlendirme dahil parametreleri görmek için kullanın , buraya eklemeye çalıştım ancak biçimlendirme oldukça doğru değildi.)


Ha - Ben yine de seni altüst ettim çünkü onu XML olarak çıktısını alacak bağlantıları buldun ve ekledin. Aferin. :)
Mark Allen

Elde ettiğim çıktı tam olarak Program Ekle / Kaldır listesinde yer almıyor . Neden bir fikrin var mı?
Joel B,

Tüm bileşen parçalarını içeriyor gibi görünüyor.
Mark Allen,

Yazılımın herhangi bir kullanıcı tarafından kurulmasını sağlamanın bir yolu var mı? Muhtemelen kullanıcı ile ilgili problem listede tüm yazılımların gelmemesine neden oluyor. Yine de bu makineyi kullanıyorum.
Satya Prakash

5

Diğerlerinin de belirttiği gibi, bu bilgiyi Win32_Product nesneleri için WMI sorgusuyla alabilirsiniz. PowerShell, isterseniz sizin için bir CSV dosyasına bile atacaktır.

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

Ancak, Win32_Product sorunlarını aramalısınız . Hepsi sakızlı ve lolipop değil.


Her zaman, özellikle Powershell'i içerdiği zaman, şeylere alternatif bir yaklaşımdan zevk alırım.
Alban

İşte hile yapmak için başka bir PowerShell komutu: Get-ItemProperty HKLM: \ Yazılım \ Wow6432Node \ Microsoft \ Windows \ CurrentVersion \ Uninstall * | Seçme Nesnesi DisplayName, DisplayVersion, Yayımcı, InstallDate | Format-Table - AutoSize Çıktıyı kaydetmek için "> outputfile" ekleyebilirsiniz. Buradan daha fazlasını görün: howtogeek.com/165293/… veya burada: theitbros.com/…
yosh m

@ Yoshm 'in komutunu deneyen başkaları için, Uninstall ile * arasında başka bir \' ye ihtiyacınız olduğunu unutmayın. Komut şöyle olmalı:Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Format-Table
stephenwade

4

Açıkça sürece WMIC bir Server üzerinde çalışmaz yüklü Management and Monitoring Toolsiçinde Add/Remove Windows Componentsmenü .

Başka bir çözüm, Kayıt Defterine gidip tüm Kaldırılabilir Programlara gidip şöyle bakmaktır :

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

Değeri görmek için her birini ayrı ayrı tıklamanız gerekir, bunun yerine Uninstallklasörü sağ tıklayıp Dışa Aktar'ı seçebilirsiniz . Dışa Aktarma Alanının yalnızca Seçili Şubeyi içerecek şekilde ayarlandığından emin olun :

Seçilmiş Şube

Daha sonra .regdosyayı notepad ++ ile açabilirsiniz , ancak her uygulama hakkında birçok ek bilgi edinebilirsiniz:

.reg

Aşağıdaki regex ile "DisplayName" eşleştirerek başlamayan tüm satırlardan kurtulabilirsiniz :

^(?!"DisplayName").+

Daha sonra dizeyi kaldırabilir "DisplayName"veya aşağıdaki regex ile" eşleştirebilirsiniz :

("DisplayName"="|")

Ardından, yinelenen çizgileri aşağıdaki regex'te eşleştirerek kaldırabilirsiniz :

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

Veya satırları yalnızca alfabetik olarak sıralayabilir ve ardından boş satırları silebilirsiniz.


3

Bulduğum en kolay yol piriform'ın temizleyicisini çalıştırmak.
Bunun Araçlar -> Kaldır -> "metin dosyasına kaydet" kısmında bir düğmesi var


1
OP hiçbir şey kuramadığı için yerleşik bir çözüm istedi (tamam, taşınabilir CCleaner var, ama mesele bu değil). Ve çıktı, kopyala ve yapıştır özelliğini desteklemelidir
nixda

1
OP'nin getirdiği sınırlamayı anlıyorum, ancak bu yöntem, Programlar ve Özellikler tarafından gösterildiği gibi tam bir liste oluşturdu (ana cevabımdaki yorumumun dediği wmicgibi).
Chuim

0

Windows 7'de bir PowerShell betiğini kullanabilirsiniz:

StartDüğmeye tıklayarak ve powershellarama alanına yazarak PowerShell'i açın .

Ardından PowerShell Penceresinde aşağıdaki komutu girin:

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

Alanlardan herhangi birini kaldırabilirsiniz: İhtiyacınız yoksa DisplayName, DisplayVersion vb.

Çıktıyı bir dosyaya kaydetmek istiyorsanız, yeniden yönlendirmeyi kullanın:

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

0

Daha önce belirtilmeyen diğer iki komut satırı olmayan çözümler şunlardır:

  1. MyUninstaller - NirSoft'un ücretsiz bir program olup, kaldırmanın yanı sıra, birçok ek bilgi içeren yüklü tüm yazılımların da kapsamlı bir listesini HTML'ye dışa aktarabilir. Taşınabilir olma avantajına sahiptir. “Yerleşik” olmasa da, bir USB sürücüsünden çalıştırabilirsiniz. Burada bulabilirsiniz .

  2. Belarc Advisor - güvenlik analizi ve bilgisayarınızın donanım ve yazılımlarının envanterini yapan ücretsiz bir programdır (kişisel kullanım için). Bu kullanılabilir burada . Ne yazık ki, onu yüklemelisiniz, bu nedenle OP'nin gereksinimlerini tam olarak karşılamıyor, ancak aynı soruyu taşıyan ve yükleyebilen diğerlerinin ihtiyaçlarını karşılayabilir.


0

C # yüklü programlarda kodlanmış sürüm kayıt defteri aracılığıyla

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


    }
}
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.