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

Obtener la lista de aplicaciones instaladas desde la línea de comandos de Windows

Una vez vi a un tipo ejecutar un comando y obtuve una lista de todas las aplicaciones instaladas en su computadora. ¿Cómo lo hago?

Me gustaría tener una lista de mis aplicaciones instaladas actualmente. Creo que usó WSH de alguna manera.

Respuestas (8)

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

Si usas Windows Vista o Windows 7 y no quisiste instalar software adicional, puedes:

  1. Abrir una ventana de línea de comandos (Windows + R, CMD.EXE)
  2. Escriba wmic (Intro)
  3. Escriba product get name (Intro)
27
27
27
2009-11-10 19:19:33 +0000

PsInfo de Microsoft/Sysinternals puede listar todo el software instalado si usas la bandera -s cuando lo ejecutas. También puedes usar -c para obtener una salida como un archivo csv para usar en Excel por ejemplo.

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

Un script de PowerShell para listarlos:

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

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

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

No es exactamente la línea de comandos, pero para este propósito yo personalmente uso la herramienta de desinstalación de CCleaner , y puedes exportar la lista de software instalado a un archivo de texto:

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

Para añadir a la solución de MicTech - use wmic y capture la lista de software instalado en un archivo:

Abra una ventana de línea de comandos (Windows + R, CMD.EXE)

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

La solución del limpiador de arriba parece una forma decente de hacerlo, a menos que estés decidido a usar la línea de comandos. He usado CCleaner antes, es una buena herramienta Pero no asumas que todo está registrado en el applet Agregar/Quitar Programas (la misma lista). Hay muchas aplicaciones que usan la instalación al estilo de xcopy, es decir, simplemente descomprime este archivo y ejecútalo. Esas no aparecerán en la lista.

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

Sysinternals psinfo.exe proporciona la información más completa de todas las sugerencias dadas, y puede ser ejecutado en cualquier PC con Windows desde la línea de comandos directamente desde un prompt CMD elevado, sin descarga permanente:

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

Obtendrá un prompt de seguridad cuando ejecute esto, y un prompt EULA la primera vez en una máquina. Un archivo de texto se guardará en el escritorio actual.

El EULA puede ser aceptado automáticamente así:

\live.sysinternals.com\tools\psinfo.exe -s /accepteula > %userprofile%\Desktop\_psinfo.txt
0
0
0
2017-07-12 15:37:28 +0000

La versión codificada en C# instaló programas a través del registro 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)
        {
            //!!!!! 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

Hay una aplicación portátil llamada Showmysoft. Mostrará el software instalado en la máquina local y en las máquinas remotas y puede exportar a PDF y a CSV . No es necesario instalarlo. Descárguelo de http://spidersoft.in/showmysoft/ .

El requisito mínimo del sistema es Microsoft .NET Framework 2.0.