Se você usar o Windows Vista ou o Windows 7 e não quiser instalar software adicional, poderá:
- Abra uma janela de linha de comando ( Windows + R , CMD.EXE)
- Digite
wmic
( Enter ) - Digite
product get name
( Enter )
Eu vi um cara executar um comando e obter uma lista de todos os aplicativos instalados em seu computador. Como eu faço isso?
Eu gostaria de uma lista dos meus aplicativos atualmente instalados. Eu acredito que ele usou WSH de alguma forma.
Se você usar o Windows Vista ou o Windows 7 e não quiser instalar software adicional, poderá:
wmic
( Enter ) product get name
( Enter ) PsInfo da Microsoft / Sysinternals pode listar todo o software instalado se você usar o Sinalizador> -s quando você o executa. Você também pode usar -c para produzir como um arquivo csv para usar no Excel, por exemplo.
C:\> psinfo -s > software.txt
C:\> psinfo -s -c > software.csv
Script do PowerShell para listá-los:
$loc = Get-ChildItem HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall
$names = $loc |foreach-object {Get-ItemProperty $_.PsPath}
foreach ($name in $names)
{
Write-Host $name.Displayname
}
Não é exatamente a linha de comando, mas para esse propósito eu pessoalmente uso a ferramenta de desinstalação do CCleaner, você pode exportar a lista de softwares instalados para um arquivo de texto:
Não é exatamente a linha de comando, mas o SIW fará o trabalho também. destaque Aplicativos, clique com o botão direito > Exportar para > CSV, HTML, TXT ou XML
O SIW é gratuito e portátil, não requer instalação.
A solução CCleaner acima parece ser uma maneira decente de fazer isso, a menos que você esteja determinado a usar a linha de comando. Eu usei o CCleaner antes, é uma boa ferramenta Mas não assuma que tudo está registrado no applet Adicionar / Remover Programas (a mesma lista). Existem muitos aplicativos que usam a instalação no estilo xcopy, ou seja, simplesmente descompacte este arquivo e execute. Aqueles não aparecerão na lista.
Para adicionar à solução de Peter Mortensen - use o wmic e capture a lista de softwares instalados em um arquivo:
Abra uma janela de linha de comando ( Windows + R , CMD.EXE)
wmic /OUTPUT:my_software.txt product get name
O psinfo.exe da Sysinternals fornece as informações mais completas de todas as sugestões dadas, e pode ser executado em qualquer PC com Windows a partir da linha cmd diretamente de um prompt CMD elevado, sem download permanente:
\live.sysinternals.com\tools\psinfo.exe -s > %userprofile%\Desktop\_psinfo.txt
Você receberá um aviso de segurança ao executar isso e solicitará o EULA pela primeira vez em uma máquina. Um arquivo de texto será salvo no Desktop atual.
O EULA pode ser aceito automaticamente assim:
\live.sysinternals.com\tools\psinfo.exe -s /accepteula > %userprofile%\Desktop\_psinfo.txt
Existe um aplicativo portátil chamado Showmysoft. Ele mostrará o software instalado na máquina local e nas máquinas remotas e poderá exportar para PDF e para CSV . A instalação não é necessária. Faça o download do link .
O requisito mínimo do sistema é o .NET Framework 2.0 da Microsoft.
A versão codificada em programas instalados em C # através do registro do 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();
}
}
}
Tags command-line windows