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.
Si vous utilisez Windows Vista ou Windows 7 et que vous ne souhaitez pas installer de logiciel supplémentaire, vous pouvez:
wmic
(Enter)product get name
(Enter)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
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:
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.
SIW est un logiciel gratuit et portable, aucune installation requise.
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.
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
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
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.
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();
}
}
}