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

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

Je souhaite une liste de mes applications actuellement installées. Je crois qu'il a utilisé WSH de quelque façon.

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. Type wmic ( Entrée )
  3. Type de product get name ( Enter )

PsInfo de Microsoft / Sysinternals peut énumérer tous les logiciels installés si vous utilisez le drapeau -s lorsque vous l'exécutez. Vous pouvez également utiliser -c pour le produire en tant que fichier csv à utiliser dans Excel par exemple.

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

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 la 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:

Texte alt

Ce n'est pas toujours la ligne de commande, mais le vieux SIW de confiance fera également son travail. Mettre en surbrillance Applications, clic droit> Exporter vers> CSV, HTML, TXT ou XML

Texte alt

SIW est gratuit et portable, aucune installation n'est requise.

La solution CCleaner ci-dessus semble être un moyen décent d'y parvenir, à moins d'être déterminé à utiliser la ligne de commande. J'ai utilisé CCleaner avant, c'est un bon outil. Mais n'assumez 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 décompressez simplement cette archive et exécutez. Ceux-ci ne se présenteront pas dans la liste.

Sysinternals psinfo.exe fournit l'information la plus complète de toutes les suggestions fournies, et il peut être exécuté sur n'importe quel PC Windows depuis la ligne cmd 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 recevrez une invite de sécurité lorsque vous exécutez ceci, et EULA vous invite la première fois sur une machine. Un fichier texte sera enregistré dans le bureau actuel.

EULA peut être automatiquement accepté comme ceci:

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

Pour ajouter à la solution Peter Mortensen – utilisez wmic et capturez 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 

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 CSV . L'installation n'est pas nécessaire. Téléchargez à partir de http://spidersoft.in/showmysoft/ .

La configuration minimale requise est Microsoft .NET Framework 2.0.

La version encodée dans les programmes installés 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(); } } }