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

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

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

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

Risposte (8)

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

Se si utilizza Windows Vista o Windows 7 e non si vuole installare software aggiuntivo, si può:

  1. 1. Aprire una finestra a riga di comando (Windows + R, CMD.EXE)
  2. Aprire una finestra a riga di comando (Windows + R, CMD.EXE)
  3. Digitare wmic (Invio)
  4. 3. Digitare product get name (Invio)
27
27
27
2009-11-10 19:19:33 +0000

PsInfo di Microsoft/Sysinternals può elencare tutti i software installati se si utilizza il flag -s quando si esegue. Si può anche usare -c per visualizzarlo come file csv da usare in Excel per esempio.

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

Uno script 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 a riga di comando, ma per questo scopo uso personalmente CCleaner’s un tool di disinstallazione, e si può esportare la lista del software installato in un file di testo:

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

Per aggiungere alla soluzione MicTech - utilizzare wmic e catturare l'elenco dei software installati in un file:

Aprire una finestra a riga di comando (Windows + R, CMD.EXE)

wmic /OUTPUT:my_software.txt product get name
3
3
3
2009-11-10 19:43:46 +0000

La soluzione CCleaner di cui sopra sembra un modo decente di procedere, a meno che non siate determinati a usare la riga di comando. Ho già usato CCleaner in passato, è un buon strumento ma non date per scontato che tutto sia registrato nell'applet Aggiungi/Rimuovi programmi (la stessa lista). Ci sono un sacco di applicazioni che usano l'installazione in stile xcopy-style, cioè basta decomprimere questo archivio ed eseguire. Queste non appariranno nella lista.

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

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

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

Otterrete un prompt di sicurezza quando lo eseguirete, e un prompt EULA la prima volta su una macchina. Un file di testo verrà salvato sul desktop corrente.

L'EULA può essere accettato automaticamente in questo modo:

&001

0
0
0
2017-07-12 15:37:28 +0000

La versione codificata in C# programmi installati 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
0
0
2013-09-02 08:52:09 +0000

Esiste un'applicazione portatile chiamata Showmysoft. Essa mostra il software installato sulla macchina locale e sulle macchine remote e può essere esportata in PDF e in CSV . L'installazione non è richiesta. Scaricare da http://spidersoft.in/showmysoft/ .

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