Dapatkan daftar aplikasi yang diinstal dari baris perintah Windows


34

Saya pernah melihat seorang pria menjalankan perintah dan mendapat daftar semua aplikasi yang terinstal di komputernya. Bagaimana saya melakukan ini?

Saya ingin daftar aplikasi yang saya instal saat ini. Saya percaya dia entah bagaimana menggunakan WSH .


Jawaban:


39

Jika Anda menggunakan Windows Vista atau Windows 7 dan Anda tidak ingin menginstal perangkat lunak tambahan, Anda dapat:

  1. Buka jendela baris perintah ( Windows+ R, CMD.EXE)
  2. Jenis wmic( Enter)
  3. Jenis product get name( Enter)

+1 Tidak banyak tentang mesin Anda yang WMI tidak dapat memberi tahu Anda hari ini.
GAT Diambil

5
di sini dikatakan bahwa Win32_Product tidak akan memberikan semua informasi tentang perangkat lunak yang diinstal. Itu berarti, itu tidak akan mencantumkan semua perangkat lunak. Alasannya adalah, win32_product menanyakan database MSI untuk mendapatkan daftar. Tetapi akan ada banyak perangkat lunak yang tidak akan memiliki entri di dalamnya karena mereka diinstal dari exe. Dalam hal ini, meminta kunci registri penghapusan instalasi memberikan informasi tentang perangkat lunak ini.
Variabel yang

1
@MiserableVariable Apakah dikatakan seperti itu? (Apakah ini tautan yang salah?) Bagaimana cara orang menanyakan registry uninstall dengan cara yang sama? (atau mungkin dengan menggunakan wmicdirinya sendiri?)
JeromeJ

1
Juga bekerja dengan Windows 10
Turcia

5
Apakah hanya saya, atau ini berjalan sangat lambat?
user3083324

27

PsInfo dari Microsoft / Sysinternals dapat mendaftar semua perangkat lunak yang diinstal jika Anda menggunakan flag -s ketika Anda menjalankannya. Anda juga dapat menggunakan -c untuk menampilkannya sebagai file csv untuk digunakan di Excel misalnya.

C:\> psinfo -s > software.txt
C:\> psinfo -s -c > software.csv

1
juga bekerja sebelum Win XP berbeda dengan solusi WMI
Gerd Klima

Tidak menampilkan semua perangkat lunak yang diinstal pada Windows 2012 R2 x64. Saya menggunakanPsInfo ver. 1.77
Tomasito

Metode ini menghasilkan 933 item di laptop saya dan metode WMI hanya menghasilkan 598. Tampaknya menghasilkan daftar yang lebih besar ...
Andrej Adamenko

@djhowell: Saya mencoba menjalankan perintah di Windows 7 tetapi saya mendapatkan kesalahan, " psinfo is not recognized as an internal or external command, operable program or batch file.". Dan ini terjadi bahkan di jendela cmd hak tinggi.
skm

14

Skrip PowerShell untuk mencantumkannya:

$loc = Get-ChildItem HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall

$names = $loc |foreach-object {Get-ItemProperty $_.PsPath}

foreach ($name in $names)
{
    Write-Host $name.Displayname
}

Tidak persis baris perintah, tetapi untuk tujuan ini saya pribadi menggunakan alat uninstall CCleaner , dan Anda dapat mengekspor daftar perangkat lunak yang diinstal ke file teks:

Teks alternatif


2
Agak ironis bahwa alat Windows Powershell dll butuh waktu lama untuk dijalankan (> 5 menit) tetapi CCleaner instan.
CAD pria

6

Tidak juga baris perintah, tapi SIW tua yang terpercaya akan melakukan pekerjaan dengan baik. Sorot Aplikasi , klik kanan → Ekspor KeCSV, HTML, TXT atau XML :

Teks alternatif

SIW adalah freeware dan portable, dan instalasi tidak diperlukan.


Saya selalu tahu SIW untuk memerlukan lisensi, di mana Anda mendapatkannya sebagai Freeware?
El Turner

3

Solusi CCleaner di atas sepertinya merupakan cara yang layak untuk melakukannya, kecuali Anda bertekad untuk menggunakan baris perintah. Saya telah menggunakan CCleaner sebelumnya, ini adalah alat yang bagus Tapi jangan menganggap bahwa semuanya terdaftar di applet Tambah / Hapus Program (daftar yang sama). Ada banyak aplikasi yang menggunakan instalasi bergaya xcopy, yaitu cukup unzip arsip ini dan jalankan. Itu tidak akan muncul dalam daftar.


3

Untuk menambah solusi MicTech - gunakan wmicdan tangkap daftar perangkat lunak yang diinstal ke file:

Buka jendela baris perintah ( Windows+ R, CMD.EXE)

wmic /OUTPUT:my_software.txt product get name

2

Sysinternals psinfo.exe memberikan informasi paling lengkap dari semua saran yang diberikan, dan itu dapat dijalankan pada PC Windows apa pun dari baris perintah langsung dari prompt CMD yang ditinggikan, tanpa mengunduh permanen:

\\live.sysinternals.com\tools\psinfo.exe -s > %userprofile%\Desktop\_psinfo.txt

Anda akan mendapatkan prompt keamanan ketika Anda menjalankan ini, dan prompt EULA pertama kali pada mesin. File teks akan disimpan ke desktop saat ini.

EULA dapat diterima secara otomatis seperti ini:

\\live.sysinternals.com\tools\psinfo.exe -s /accepteula > %userprofile%\Desktop\_psinfo.txt


0

Versi disandikan dalam program yang diinstal C # melalui registri Windows:

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)
                            {
                                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.