it-swarm-eu.dev

Ottieni l'elenco delle applicazioni installate dalla riga di comando di Windows

Una volta ho visto un ragazzo eseguire un comando e ottenuto un elenco di tutte le applicazioni installate sul suo computer. Come faccio a fare questo?

Vorrei un elenco delle mie applicazioni attualmente installate. Credo che abbia usato WSH in qualche modo.

33
rana

Se si utilizza Windows Vista o Windows 7 e non si desidera installare software aggiuntivo, è possibile:

  1. Apri una finestra della riga di comando (Windows + R, CMD.EXE)
  2. Digitare wmic (Enter)
  3. Digita product get name (Enter)
39
MicTech

PsInfo di Microsoft/Sysinternals può elencare tutto il software installato se si usa il flag - s quando si eseguirlo. È anche possibile utilizzare - c per visualizzarlo come un file csv da utilizzare in Excel, ad esempio.

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

Script di PowerShell per elencarli:

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

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

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

Non esattamente dalla riga di comando, ma a questo scopo io personalmente uso CCleaner's strumento di disinstallazione, puoi esportare l'elenco di software installato in un file di testo:

alt text

14
John T

Neanche la riga di comando è esatta, ma anche il fidato vecchio SIW farà lo stesso. evidenzia Applicazioni, fai clic con il pulsante destro del mouse> Esporta in> CSV, HTML, TXT o XML

alt text

SIW è gratuito e portatile, non richiede installazione

6
Molly7244

La soluzione CCleaner di cui sopra sembra un modo decente per farlo, a meno che tu non sia determinato a usare la riga di comando. Ho usato CCleaner in precedenza, è un buon strumento, ma non dare per scontato che tutto sia registrato nell'applet Aggiungi/Rimuovi programmi (lo stesso elenco). Ci sono molte app che usano l'installazione in stile xcopy, cioè semplicemente decomprimere questo archivio ed eseguirlo. Quelli non verranno visualizzati nell'elenco.

3
JMD

Per aggiungere alla soluzione di Peter Mortensen - usa wmic e cattura l'elenco dei software installati in un file:

Apri una finestra della riga di comando (Windows + R, CMD.EXE)

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

Sysinternals psinfo.exe fornisce le informazioni più complete di tutti i suggerimenti forniti e può essere eseguito su qualsiasi PC Windows dalla riga cmd direttamente da un prompt CMD con privilegi elevati, senza download permanente:

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

Viene visualizzato un prompt di sicurezza quando viene eseguito e EULA richiede la prima volta su una macchina. Un file di testo verrà salvato sul desktop corrente.

EULA può essere accettato automaticamente in questo modo:

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

C'è un'applicazione portatile chiamata Showmysoft. Mostrerà il software installato sulla macchina locale e su macchine remote e può esportare in PDF e in CSV . L'installazione non è richiesta. Scarica da http://spidersoft.in/showmysoft/ .

Il requisito di sistema minimo è Microsoft . NET Framework 2.0.

0
jacob justin

La versione codificata in C # ha installato programmi tramite il registro di 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