Una vez vi a un tipo ejecutar un comando y obtuve una lista de todas las aplicaciones instaladas en su computadora. ¿Cómo hago esto?
Me gustaría una lista de mis aplicaciones instaladas actualmente. Creo que usó WSH de alguna manera.
Una vez vi a un tipo ejecutar un comando y obtuve una lista de todas las aplicaciones instaladas en su computadora. ¿Cómo hago esto?
Me gustaría una lista de mis aplicaciones instaladas actualmente. Creo que usó WSH de alguna manera.
Respuestas:
Si usa Windows Vista o Windows 7 y no desea instalar software adicional, puede:
wmic
( Enter)product get name
( Enter)wmic
sí mismo?)
PsInfo de Microsoft / Sysinternals puede enumerar todo el software instalado si usa el indicador -s cuando lo ejecuta. También puede usar -c para generarlo como un archivo csv para usar en Excel, por ejemplo.
C:\> psinfo -s > software.txt
C:\> psinfo -s -c > software.csv
Windows 2012 R2 x64
. Estoy usandoPsInfo ver. 1.77
psinfo is not recognized as an internal or external command, operable program or batch file.
". Y esto sucede incluso en la ventana cmd de derechos elevados.
Un script de PowerShell para enumerarlos:
$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 personalmente uso la herramienta de desinstalación de CCleaner , y puedes exportar la lista de software instalado a un archivo de texto:
Tampoco es exactamente la línea de comandos, pero el viejo y confiable SIW también hará el trabajo. Resalte Aplicaciones , haga clic con el botón derecho → Exportar a → CSV, HTML, TXT o XML :
SIW es gratuito y portátil, y no requiere instalación.
La solución CCleaner anterior parece una forma decente de hacerlo, a menos que esté decidido a usar la línea de comandos. He usado CCleaner antes, es una buena herramienta. Pero no asuma que todo está registrado en la aplicación Agregar o quitar programas (la misma lista). Hay muchas aplicaciones que utilizan la instalación de estilo xcopy, es decir, simplemente descomprima este archivo y ejecútelo. Esos no aparecerán en la lista.
Para agregar 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
Sysinternals psinfo.exe proporciona la información más completa de todas las sugerencias dadas, y se puede ejecutar en cualquier PC con Windows desde la línea de comandos directamente desde un indicador CMD elevado, sin descarga permanente:
\\live.sysinternals.com\tools\psinfo.exe -s > %userprofile%\Desktop\_psinfo.txt
Recibirá un aviso de seguridad cuando ejecute esto, y un aviso de EULA la primera vez en una máquina. Se guardará un archivo de texto en el escritorio actual.
El EULA puede aceptarse automáticamente de esta manera:
\\live.sysinternals.com\tools\psinfo.exe -s /accepteula > %userprofile%\Desktop\_psinfo.txt
Hay una aplicación portátil llamada Showmysoft. Mostrará el software instalado en la máquina local y las máquinas remotas y puede exportar a PDF y CSV . No se requiere instalación. Descargar desde http://spidersoft.in/showmysoft/ .
El requisito mínimo del sistema es Microsoft .NET Framework 2.0.
La versión codificada en los programas instalados en C # 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();
}
}
}