แสดงรายการซอฟต์แวร์ที่ติดตั้งทั้งหมดบนพีซี


30

มีอะไรในตัว Windows ที่จะอนุญาตให้ฉันแสดงรายการซอฟต์แวร์ที่ติดตั้งไว้ทั้งหมดในคอมพิวเตอร์ในแบบที่สามารถคัดลอก / วางไปยังสเปรดชีตได้หรือไม่ ฉันรู้ว่ามีซอฟต์แวร์ที่สามารถทำสิ่งนี้ได้ แต่ฉันไม่สามารถติดตั้งได้ ฉันไม่ต้องการใช้ไฟล์แบตช์ถ้าเป็นไปได้ แต่ฉันคิดว่ามันจะเป็นวิธีเดียว โดยหลักการแล้วฉันจะสามารถส่งออกข้อมูลเดียวกับที่แสดงในมุมมอง (ไม่ขยาย) ของฟอร์มเพิ่ม / เอาโปรแกรมออก


คุณอาจจะเขียนไฟล์แบตช์เพื่อสอบถามฐานข้อมูล Windows Installer แต่นั่นอาจจะไม่ได้จับทุกอย่าง

ฉันเขียนแอปที่สอบถามรีจิสตรีสำหรับข้อมูลนี้และในขณะที่แอพไม่ได้ใส่ในรูปแบบที่คุณต้องการสามารถคัดลอกส่วนของรหัสและแก้ไขได้ง่าย ๆ นี่คือลิงค์ไปยังแหล่งที่มา: pulsarsoftware.org/Projects/ProcessManager.html
MaQleod

1
ใน windows powershell คุณสามารถลอง: Get-WmiObject -Class Win32_Product. ดูที่นี่สำหรับรายละเอียดเพิ่มเติม
rishimaharaj

คำตอบ:


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

หรือไฟล์ htable.xsl เพื่อสร้างตารางผลลัพธ์ HTML:

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

2
หากคุณเพิ่ม> InstallList.txt ที่ส่วนท้ายคุณจะได้รับไฟล์ข้อความที่มีเอาต์พุต ไดเรกทอรีปัจจุบันที่คุณอยู่เป็นที่ที่ไฟล์จะถูกสร้างขึ้น นอกจากนี้คุณสามารถเพิ่ม InstallDate หลังจากรุ่น นี่จะแสดงวันที่ติดตั้งผลิตภัณฑ์ สิ่งนี้มีประโยชน์ในการแยกแยะโปรแกรมที่ติดตั้งจากผู้ผลิต คุณควรจะสามารถเปิดไฟล์ข้อความนี้ใน Excel และเรียงลำดับเล็กน้อยหากจำเป็น
John Dyer

8
น่าเศร้าที่ดูเหมือนว่าจะไม่สร้างรายการเดียวกับที่แสดงในโปรแกรมและคุณลักษณะ: มีแอปพลิเคชั่นหลายตัวที่ไม่ปรากฏในอดีตและมีบางอย่างที่ทำ แต่ไม่มีอยู่ในรายการ บางรายการที่ไม่ได้แสดงในwmicรายการ: เกม Steam ติดตั้งไว้ของฉัน Notepad ++ WinMerge, โปรแกรมจัดการเพลงของ รายการที่จะไม่แสดงขึ้นในโปรแกรมและคุณลักษณะ: Java Auto Updater, ปรับปรุงความปลอดภัยสำหรับ CAPICOM (KB931906) ฉันพยายามเรียกใช้จากผู้ดูแลระบบ CMD แต่รายชื่อที่สร้างขึ้นเหมือนกัน
Chuim

1
คำถามที่ StackOverflow นี้ครับอธิบายว่าทำไม: stackoverflow.com/questions/673233/...
Chuim

ฉันใช้คำสั่งที่คล้ายกัน แต่ไม่ได้ระบุชื่อ / สองสามข้อ ตัวอย่าง. Propros, เสียงกริ๊ก ฯลฯ วิธีการรวมที่และคล้ายกัน?
Satya Prakash

1
หากคุณได้รับInvalid Class 0x80041010 Errorแล้วคุณสามารถไปAdd/Remove Windows ComponentsและตรวจสอบManagement and Monitoring Tools
KyleMit

8

เรียกใช้wmic product getจะได้รับรายชื่อของซอฟต์แวร์ที่ติดตั้งก็ควรจะตรงรายการเช่นเดียวกับโปรแกรมเพิ่ม / ลบ

คุณสามารถนำมันไปใช้กับรูปแบบเฉพาะได้ แต่ฉันไม่ได้ลองเลย

(ใช้wmic product get /?เพื่อดูพารามิเตอร์รวมถึงการจัดรูปแบบผลลัพธ์ฉันพยายามรวมไว้ที่นี่ แต่การจัดรูปแบบไม่ถูกต้องนัก)


ฮา - ฉัน upvoting คุณอยู่แล้วเพราะคุณพบและรวมลิงค์เพื่อให้มันออกใน XML โดยเฉพาะ ทำได้ดีมาก :)
มาร์คอัลเลน

ผลผลิตที่ฉันได้รับไม่ตรงกับสิ่งที่ Add / Remove โปรแกรมรายการ ความคิดใดทำไม
Joel B

ดูเหมือนว่าจะรวมถึงส่วนประกอบทั้งหมด
Mark Allen

มีวิธีในการติดตั้งซอฟต์แวร์โดยผู้ใช้รายใดหรือไม่ ปัญหาที่เกี่ยวข้องกับผู้ใช้อาจเป็นสาเหตุให้ซอฟต์แวร์บางรายการไม่ได้อยู่ในรายการ แม้ว่าฉันจะใช้เครื่องนี้เท่านั้น
Satya Prakash

5

ตามที่คนอื่นได้กล่าวถึงคุณสามารถรับข้อมูลนี้ได้ด้วยแบบสอบถาม WMI สำหรับวัตถุ Win32_Product PowerShell จะถ่ายโอนข้อมูลไปยังไฟล์ CSV สำหรับคุณหากคุณต้องการ

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

อย่างไรก็ตามคุณควรค้นหาปัญหา Win32_Product มันไม่ใช่หมากฝรั่งและอมยิ้มทั้งหมด


ฉันมักจะเพลิดเพลินกับวิธีการทางเลือกกับสิ่งต่าง ๆ โดยเฉพาะอย่างยิ่งเมื่อมันเกี่ยวข้องกับ Powershell
Alban

นี่คือคำสั่ง PowerShell อื่นที่จะทำเคล็ดลับ: Get-ItemProperty HKLM: \ Software \ Wow6432Node \ Microsoft \ Windows \ CurrentVersion \ Uninstall * | เลือกวัตถุที่แสดงชื่อ DisplayVersion สำนักพิมพ์ InstallDate | Format-Table –AutoSize คุณสามารถเพิ่ม "> outputfile" เพื่อบันทึกผลลัพธ์ ดูเพิ่มเติมได้ที่นี่: howtogeek.com/165293/…หรือที่นี่: theitbros.com/…
yosh m

หมายเหตุสำหรับผู้อื่นที่ลองใช้คำสั่งของ @ yoshm คุณต้องมีอีก \ ระหว่างถอนการติดตั้งและ * คำสั่งควรเป็น:Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Format-Table
stephenwade

4

WMIC จะไม่ทำงานบนเซิร์ฟเวอร์จนกว่าคุณจะได้อย่างชัดเจนติดตั้งManagement and Monitoring ToolsในAdd/Remove Windows Componentsเมนู

อีกวิธีหนึ่งคือไปที่ Registry และดูโปรแกรมที่ถอนการติดตั้งได้ทั้งหมดโดยไปที่:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

คุณจะต้องคลิกแต่ละทีจะเห็นคุณค่าดังนั้นแทนที่จะคุณสามารถคลิกขวาที่Uninstallโฟลเดอร์และเลือกส่งออก ตรวจสอบให้แน่ใจว่าช่วงการส่งออกถูกตั้งค่าให้รวมเฉพาะสาขาที่เลือก :

สาขาที่เลือก

จากนั้นคุณสามารถเปิด.regไฟล์ใน notepad ++ แต่คุณจะได้รับข้อมูลเพิ่มเติมมากมายในแต่ละแอปพลิเคชัน:

.reg

คุณสามารถกำจัดทุกบรรทัดที่ไม่ได้เริ่มต้นด้วยการ "DisplayName"จับคู่กับregex ต่อไปนี้ :

^(?!"DisplayName").+

จากนั้นคุณสามารถลบสตริง "DisplayName"หรือ"โดยการจับคู่ในregex ต่อไปนี้ :

("DisplayName"="|")

จากนั้นคุณสามารถลบบรรทัดที่ซ้ำกันโดยจับคู่ในregex ต่อไปนี้ :

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

หรือคุณสามารถเรียงลำดับบรรทัดตามตัวอักษรแล้วลบบรรทัดว่าง


3

วิธีที่ง่ายที่สุดที่ฉันพบคือการใช้คลีนเนอร์ของ Piriform
มีปุ่มที่เครื่องมือ -> ถอนการติดตั้ง -> "บันทึกลงในไฟล์ข้อความ"


1
OP ขอวิธีการแก้ปัญหาในตัวเนื่องจากเขาไม่สามารถติดตั้งอะไร (ตกลงมี CCleaner พกพา แต่นั่นไม่ใช่จุด) และผลลัพธ์ควรรองรับการคัดลอกและวาง
nixda

1
ฉันเข้าใจข้อ จำกัด ที่ OP กำหนดไว้ แต่ในความเป็นจริงแล้ววิธีการนี้สร้างรายการที่สมบูรณ์ตามที่แสดงโดยโปรแกรมและคุณลักษณะ (ตามความเห็นของฉันในคำตอบหลักบอกwmicว่า
Chuim

0

ใน Windows 7 คุณสามารถใช้สคริปต์ PowerShell:

เปิด PowerShell โดยคลิกStartปุ่มและพิมพ์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

โซลูชันอื่นที่ไม่ใช่บรรทัดคำสั่งสองรายการที่ไม่ได้กล่าวถึงก่อนหน้าคือ:

  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.