2009-11-10 19:05:44 +0000 2009-11-10 19:05:44 +0000
34
34

Get list of installed applications from Windows command line

Une fois, j'ai vu un type exécuter une commande et j'ai obtenu une liste de toutes les applications installées sur son ordinateur. Comment faire ?

Je souhaite obtenir la liste des applications que j'ai actuellement installées. Je crois qu'il a utilisé WSH d'une manière ou d'une autre.

Réponses (8)

40
40
40
2009-11-10 19:15:35 +0000

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

  1. Ouvrir une fenêtre de ligne de commande (Windows + R, CMD.EXE)
  2. Taper wmic (Entrée)
  3. Tapez product get name (Enter)
27
27
27
2009-11-10 19:19:33 +0000

PsInfo de Microsoft/Sysinternals peut lister tous les logiciels installés si vous utilisez le drapeau -s lorsque vous l'exécutez. Vous pouvez également utiliser -c pour le sortir sous forme de fichier csv à utiliser dans Excel par exemple.

C:\> psinfo -s > software.txt
C:\> psinfo -s -c > software.csv
14
14
14
2009-11-10 19:17:09 +0000

Un script PowerShell pour les répertorier :

$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 CCleaner’s , et vous pouvez exporter la liste des logiciels installés vers un fichier texte :

3
3
3
2015-08-29 19:19:55 +0000

Pour ajouter à la solution de MicTech - utilisez wmic et saisissez 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
3
3
2009-11-10 19:43:46 +0000

La solution CCleaner ci-dessus semble être une manière décente de procéder, à moins que vous ne soyez 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). Il existe de nombreuses applications qui utilisent une installation de type xcopy, c'est-à-dire qu'il suffit de décompresser cette archive et de l'exécuter. Celles-ci n'apparaîtront pas dans la liste.

2
2
2
2015-05-29 15:38:14 +0000

Parmi toutes les suggestions données, c'est le fichier psinfo.exe qui fournit les informations les plus complètes. Il peut être exécuté sur n'importe quel PC Windows à partir de la ligne de commande, directement à partir d'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 une invite CLUF la première fois sur une machine. Un fichier texte sera enregistré sur le bureau actuel.

Le CLUF peut être automatiquement accepté comme suit :

\live.sysinternals.com\tools\psinfo.exe -s /accepteula > %userprofile%\Desktop\_psinfo.txt
0
0
0
2017-07-12 15:37:28 +0000

La version encodée en C# des programmes installés 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
0
0
2013-09-02 08:52:09 +0000

Il existe une application portable appelée Showmysoft. Elle montre les logiciels installés sur la machine locale et les machines distantes et peut exporter vers PDF et vers CSV . L'installation n'est pas nécessaire. Télécharger à partir de http://spidersoft.in/showmysoft/ .

La configuration minimale requise est Microsoft .NET Framework 2.0.