43 votes

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

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

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

3voto

Ryan Shripat Points 2330

La solution CCleaner ci-dessus semble être un bon moyen de le faire, 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 de programme Ajouter/Supprimer (la même liste). Il y a beaucoup d'applications qui utilisent une installation de style xcopy, c'est-à-dire simplement dézipper cette archive et exécuter. Celles-ci ne s'afficheront pas dans la liste.

2voto

Matthew Simpson Points 21

Sysinternals psinfo.exe fournit les informations les plus complètes parmi toutes les suggestions données, et il peut être exécuté sur n'importe quel PC Windows à partir de la ligne de commande directement depuis une fenêtre 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 exécuterez ceci, et une invite EULA la première fois sur une machine. Un fichier texte sera enregistré sur le bureau actuel.

L'EULA peut être automatiquement acceptée de cette manière :

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

1voto

programmer365 Points 1

J'utilise powershell ici:

Get-Package | 
  Where-Object {$_.ProviderName -in @('Programs','msi','chocolatey')} |
    Select-Object * | 
      Out-GridView "Programmes installés"

0voto

Gabe Points 1089

Il existe une application portable appelée Showmysoft. Il affichera les logiciels installés sur la machine locale et les machines distantes et peut exporter au format PDF et au format CSV. L'installation n'est pas requise. Téléchargez depuis http://spidersoft.in/showmysoft/.

La configuration système minimale requise est Microsoft .NET Framework 2.0.

0voto

Domenico Zinzi Points 191

La version codée en C# des programmes installés via le registre de 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)
        {
            //!!!!! Doit être lancé avec un utilisateur administrateur de domaine !!!!!
            Console.ForegroundColor = ConsoleColor.Green;
            StringBuilder sbOutFile = new StringBuilder();
            Console.WriteLine("DisplayName;IdentifyingNumber");
            sbOutFile.AppendLine("Machine;DisplayName;Version");

            // Récupérer le nom de la machine à partir du fichier :File_In/collectionMachines.txt
            //string[] lines = new string[] { "NomMachine" };
            string[] lines = File.ReadAllLines(@"File_In/collectionMachines.txt");
            foreach (var machine in lines)
            {
                // Récupérer la liste des programmes installés pour chaque nom de machine extrapolé
                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")));
                            }
                        }
                    }
                }
            }
            // Création du fichier CSV
            var fileOutName = string.Format(@"File_Out\{0}_{1}.csv", "InventaireLogiciels", DateTime.Now.ToString("yyyy_MM_dd_HH_mmssfff"));
            using (var file = new System.IO.StreamWriter(fileOutName))
            {
                file.WriteLine(sbOutFile.ToString());
            }

            // Appuyez sur Entrée pour continuer 
            Console.WriteLine("Appuyez sur Entrée pour continuer !");
            Console.ReadLine();
        }
    }
}

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X