Liste der installierten Anwendungen von der Windows-Befehlszeile abrufen

34

Ich habe einmal gesehen, wie ein Mann einen Befehl ausgeführt hat und eine Liste aller installierten Anwendungen auf seinem Computer abgerufen hat. Wie mache ich das?

Ich möchte eine Liste meiner aktuell installierten Anwendungen erhalten. Ich glaube, er hat irgendwie WSH benutzt .

Peter Mortensen
quelle
Verwandte Themen: Gibt es ein Dienstprogramm, mit dem ich eine Liste aller installierten Programme in einer Textdatei für Windows abspeichern kann?   (Nicht auf Befehlszeilenlösungen beschränkt).
G-Man sagt, dass Monica

Antworten:

39

Wenn Sie Windows Vista oder Windows 7 verwenden und keine zusätzliche Software installieren möchten, haben Sie folgende Möglichkeiten :

  1. Öffnen Sie ein Befehlszeilenfenster ( Windows+ R, CMD.EXE)
  2. Typ wmic( Enter)
  3. Typ product get name( Enter)
MicTech
quelle
+1 Es gibt nicht viel an Ihrem Computer, was WMI Ihnen heutzutage nicht sagen kann.
GAThrawn
5
Hier steht, dass Win32_Product nicht alle Informationen über die installierte Software liefert. Das heißt, es werden nicht alle Programme aufgelistet. Der Grund dafür ist, dass win32_product die MSI-Datenbank abfragt, um die Liste abzurufen. Es wird aber viele Programme geben, die keinen Eintrag haben, da sie von exe installiert wurden. In diesem Fall erhalten Sie beim Abfragen des Registrierungsschlüssels uninstall Informationen zu dieser Software.
Miserable Variable
1
@MiserableVariable Sagt es das? (Ist es der falsche Link?) Wie würde man die Deinstallationsregistrierung auf ähnliche Weise abfragen? (oder vielleicht von wmicselbst?)
JeromeJ
1
Funktioniert auch mit Windows 10
Turcia
5
Bin es nur ich oder läuft das sehr langsam?
user3083324
27

PsInfo von Microsoft / Sysinternals kann die gesamte installierte Software auflisten, wenn Sie beim Ausführen das Flag -s verwenden. Sie können -c auch verwenden, um es als CSV-Datei auszugeben, die Sie beispielsweise in Excel verwenden können.

C:\> psinfo -s > software.txt
C:\> psinfo -s -c > software.csv
djhowell
quelle
1
funktioniert auch unter Win XP im Gegensatz zur WMI-Lösung
Gerd Klima
Zeigt nicht die gesamte installierte Software an Windows 2012 R2 x64. Ich benutzePsInfo ver. 1.77
Tomasito
Diese Methode erzeugte 933 Elemente auf meinem Laptop und die WMI-Methode erzeugte nur 598. Es schien eine größere Liste zu erzeugen ...
Andrej Adamenko
@djhowell: Ich versuche, den Befehl unter Windows 7 auszuführen, erhalte jedoch die Fehlermeldung " psinfo is not recognized as an internal or external command, operable program or batch file.". Und das passiert sogar im Cmd-Fenster mit erhöhten Rechten.
skm
14

Ein PowerShell-Skript, um sie aufzulisten:

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

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

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

Nicht gerade die Befehlszeile, aber zu diesem Zweck verwende ich persönlich das Deinstallationstool von CCleaner , und Sie können die Liste der installierten Software in eine Textdatei exportieren:

Alt-Text

John T
quelle
2
Eher ironisch, dass die Windows Powershell-Tools usw. eine Ewigkeit brauchen (> 5 Minuten), aber CCleaner ist sofort verfügbar.
CAD Kerl
6

Auch nicht unbedingt die Kommandozeile, aber auch die alte SIW wird den Job erledigen. Markieren Sie Anwendungen , klicken Sie mit der rechten Maustaste → Exportieren nachCSV, HTML, TXT oder XML :

Alt-Text

SIW ist Freeware und portabel, eine Installation ist nicht erforderlich.

Peter Mortensen
quelle
Ich habe immer gewusst, dass SIW eine Lizenz benötigt. Woher bekommen Sie diese als Freeware?
El Turner
3

Die obige CCleaner-Lösung scheint ein guter Weg zu sein, es sei denn, Sie möchten die Befehlszeile verwenden. Ich habe CCleaner schon einmal verwendet, es ist ein gutes Tool. Aber nehmen Sie nicht an, dass alles im Applet "Software" (dieselbe Liste) registriert ist. Es gibt eine Vielzahl von Apps, die eine Installation im xcopy-Stil verwenden, dh dieses Archiv einfach entpacken und ausführen. Diese werden in der Liste nicht angezeigt.

JMD
quelle
3

So fügen Sie die Lösung von MicTech hinzu: Verwenden Sie wmicdie Liste der installierten Software und erfassen Sie sie in einer Datei:

Öffnen Sie ein Befehlszeilenfenster ( Windows+ R, CMD.EXE)

wmic /OUTPUT:my_software.txt product get name
Moots
quelle
2

Sysinternals psinfo.exe bietet die umfassendsten Informationen zu allen Vorschlägen und kann auf jedem Windows-PC über die Befehlszeile direkt von einer erhöhten CMD-Eingabeaufforderung aus ausgeführt werden, ohne dass ein permanenter Download erforderlich ist:

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

Sie erhalten eine Sicherheitsabfrage, wenn Sie dies ausführen, und eine EULA-Abfrage, wenn Sie das erste Mal auf einem Computer arbeiten. Eine Textdatei wird auf dem aktuellen Desktop gespeichert.

Die EULA kann wie folgt automatisch akzeptiert werden:

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

Es gibt eine tragbare Anwendung namens Showmysoft. Es zeigt die installierte Software auf dem lokalen Computer und den Remotecomputern an und kann als PDF- und CSV- Datei exportiert werden . Installation ist nicht erforderlich. Herunterladen von http://spidersoft.in/showmysoft/ .

Die minimale Systemanforderung ist Microsoft .NET Framework 2.0.

Jacob Justin
quelle
0

Die codierte Version in C # installierten Programmen über die Windows-Registrierung:

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