web-dev-qa-db-fra.com

Obtenir la liste des applications installées à partir de la ligne de commande Windows

Une fois, j'ai vu un gars exécuter une commande et obtenir une liste de toutes les applications installées sur son ordinateur. Comment puis-je faire cela?

Je voudrais une liste de mes applications actuellement installées. Je crois qu'il a utilisé WSH d'une manière ou d'une autre.

33
rana

Si vous utilisez Windows Vista ou Windows 7 et que vous ne souhaitez pas installer de logiciel supplémentaire, vous pouvez:

  1. Ouvrez une fenêtre de ligne de commande (Windows + R, CMD.EXE)
  2. Tapez wmic (Enter)
  3. Tapez product get name (Enter)
39
MicTech

PsInfo de Microsoft/Sysinternals peut répertorier tous les logiciels installés si vous utilisez l'indicateur - s lorsque vous exécuter. Vous pouvez également utiliser - c pour le générer sous forme de fichier csv à utiliser dans Excel, par exemple.

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

Script PowerShell pour les lister:

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

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

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

Pas exactement en ligne de commande, mais à cette fin j'utilise personnellement l'outil de désinstallation de CCleaner . Vous pouvez exporter la liste des logiciels installés dans un fichier texte:

alt text

14
John T

Pas exactement en ligne de commande non plus, mais le vieux FIDÈLE _ FIDÈLEfera aussi l'affaire. Sélectionnez Applications, cliquez avec le bouton droit de la souris sur> Exporter vers> CSV, HTML, TXT ou XML.

alt text

SIW est un logiciel gratuit et portable, aucune installation requise.

6
Molly7244

La solution ci-dessus de CCleaner semble être un moyen décent de s'y prendre, sauf si vous êtes déterminé à utiliser la ligne de commande. J'ai déjà utilisé CCleaner, c'est un bon outil, mais ne supposez pas que tout est enregistré dans l'applet Ajout/Suppression de programmes (la même liste). De nombreuses applications utilisent l’installation de style xcopy, c’est-à-dire décompressez simplement cette archive et exécutez-la. Ceux-ci n'apparaîtront pas dans la liste.

3
JMD

Pour ajouter à la solution de Peter Mortensen - utilisez wmic et enregistrez la liste des logiciels installés dans un fichier:

Ouvrez une fenêtre de ligne de commande (Windows + R, CMD.EXE)

wmic /OUTPUT:my_software.txt product get name
3
Moots

Sysinternals psinfo.exe fournit les informations les plus complètes de toutes les suggestions données. Il peut être exécuté sur tout PC Windows à partir de la ligne de commande directement depuis une invite CMD élevée, sans téléchargement permanent:

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

Vous obtiendrez une invite de sécurité lorsque vous l'exécuterez, et l'invite EULA pour la première fois sur une machine. Un fichier texte sera enregistré sur le bureau actuel.

Le CLUF peut être automatiquement accepté comme ceci:

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

Il existe une application portable appelée Showmysoft. Il montrera le logiciel installé sur la machine locale et les machines distantes et peut exporter vers PDF et vers CSV . L'installation n'est pas requise. Téléchargez depuis http://spidersoft.fr/showmysoft/ .

La configuration minimale requise est Microsoft . NET Framework 2.0.

0
jacob justin

La version codée dans les programmes installés en C # via le registre 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();
        }
    }
}
0
Domenico Zinzi