Nhận danh sách các ứng dụng đã cài đặt từ dòng lệnh Windows


34

Tôi đã từng thấy một anh chàng chạy một lệnh và có một danh sách tất cả các ứng dụng được cài đặt trên máy tính của anh ta. Làm thế nào để tôi làm điều này?

Tôi muốn một danh sách các ứng dụng hiện đang cài đặt của tôi. Tôi tin rằng anh ấy đã sử dụng WSH bằng cách nào đó.


Câu trả lời:


39

Nếu bạn sử dụng Windows Vista hoặc Windows 7 và bạn không muốn cài đặt phần mềm bổ sung, bạn có thể:

  1. Mở cửa sổ dòng lệnh ( Windows+ R, CMD.EXE)
  2. Loại wmic( Enter)
  3. Loại product get name( Enter)

+1 Không có nhiều thông tin về máy của bạn mà WMI không thể cho bạn biết những ngày này.
GAThrawn

5
Ở đây nó nói rằng Win32_Sản phẩm sẽ không cung cấp tất cả thông tin về các phần mềm được cài đặt. Điều đó có nghĩa là, nó sẽ không liệt kê tất cả các phần mềm. Lý do cho điều này là, win32_product truy vấn cơ sở dữ liệu MSI để lấy danh sách. Nhưng sẽ có nhiều phần mềm không có mục trong đó vì chúng đã được cài đặt từ exe. Trong trường hợp này truy vấn khóa đăng ký gỡ cài đặt cung cấp thông tin về các phần mềm này.
Biến khốn khổ

1
@MiserableVariable Có nói như vậy không? (Đây có phải là liên kết sai không?) Làm thế nào một truy vấn đăng ký gỡ cài đặt theo cách tương tự? (hoặc có lẽ bằng cách sử dụng wmicchính nó?)
JeromeJ

1
Cũng hoạt động với Windows 10
Turcia

5
Chỉ có tôi, hoặc điều này chạy rất chậm?
dùng3083324

27

PsInfo từ Microsoft / Sysiternals có thể liệt kê tất cả các phần mềm đã cài đặt nếu bạn sử dụng cờ -s khi bạn chạy nó. Bạn cũng có thể sử dụng -c để xuất nó dưới dạng tệp csv để sử dụng trong Excel chẳng hạn.

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

1
cũng hoạt động unter Win XP tương phản với giải pháp WMI
Gerd Klima

Không hiển thị tất cả các phần mềm được cài đặt trên Windows 2012 R2 x64. Tôi đang sử dụngPsInfo ver. 1.77
Tomasito 11/05/2016

Phương pháp này tạo ra 933 mặt hàng trên máy tính xách tay của tôi và phương pháp WMI chỉ được sản xuất 598. Nó dường như tạo ra một danh sách lớn hơn ...
Andrej Adamenko

@djhowell: Tôi đang cố thực thi lệnh trong Windows 7 nhưng tôi gặp lỗi, " psinfo is not recognized as an internal or external command, operable program or batch file.". Và điều này xảy ra ngay cả trong cửa sổ cmd quyền nâng cao.
skm

14

Tập lệnh PowerShell để liệt kê chúng:

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

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

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

Không chính xác dòng lệnh, nhưng với mục đích này, cá nhân tôi sử dụng công cụ gỡ cài đặt CCleaner và bạn có thể xuất danh sách phần mềm đã cài đặt sang tệp văn bản:

Văn bản thay thế


2
Khá mỉa mai là các công cụ Windows Powershell v.v ... mất nhiều thời gian để chạy (> 5 phút) nhưng CCleaner là tức thì.
CAD bloke

6

Không chính xác dòng lệnh, nhưng SIW cũ đáng tin cậy cũng sẽ làm công việc đó. Làm nổi bật các ứng dụng , nhấp chuột phải → Xuất sangCSV, HTML, TXT hoặc XML :

Văn bản thay thế

SIW là phần mềm miễn phí và di động, và không cần cài đặt.


Tôi luôn biết SIW phải có giấy phép, bạn lấy nó ở đâu miễn phí?
El Turner

3

Giải pháp CCleaner ở trên có vẻ là một cách hay để thực hiện, trừ khi bạn quyết tâm sử dụng dòng lệnh. Tôi đã sử dụng CCleaner trước đây, đây là một công cụ tốt nhưng đừng cho rằng mọi thứ đều được đăng ký trong applet Thêm / Xóa Chương trình (cùng danh sách). Có rất nhiều ứng dụng sử dụng cài đặt kiểu xcopy, tức là chỉ cần giải nén tệp lưu trữ này và chạy. Những người sẽ không xuất hiện trong danh sách.


3

Để thêm vào giải pháp của MicTech - sử dụng wmicvà nắm bắt danh sách các phần mềm đã cài đặt vào một tệp:

Mở cửa sổ dòng lệnh ( Windows+ R, CMD.EXE)

wmic /OUTPUT:my_software.txt product get name

2

Sysinternals psinfo.exe cung cấp thông tin đầy đủ nhất của tất cả những đề nghị được đưa ra, và nó có thể chạy trên bất kỳ máy tính Windows từ dòng lệnh trực tiếp từ một nâng CMD nhanh chóng, mà không cần tải xuống vĩnh viễn:

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

Bạn sẽ nhận được lời nhắc bảo mật khi bạn chạy lệnh này và lời nhắc EULA lần đầu tiên trên máy. Một tệp văn bản sẽ được lưu vào máy tính để bàn hiện tại.

EULA có thể được tự động chấp nhận như thế này:

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

0

Có một ứng dụng di động được gọi là Showmysoft. Nó sẽ hiển thị phần mềm đã cài đặt trên máy cục bộ và máy từ xa và có thể xuất sang PDF và sang CSV . Không cần cài đặt. Tải xuống từ http://spidersoft.in/showmysoft/ .

Yêu cầu hệ thống tối thiểu là Microsoft .NET Framework 2.0.


0

Phiên bản được mã hóa trong các chương trình được cài đặt C # thông qua Windows registry:

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();
        }
    }
}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.