Kiedyś widziałem faceta uruchamiającego polecenie i dostałem listę wszystkich zainstalowanych aplikacji na swoim komputerze. Jak mam to zrobic?
Chciałbym listę moich obecnie zainstalowanych aplikacji. Myślę, że jakoś wykorzystał WSH .
Kiedyś widziałem faceta uruchamiającego polecenie i dostałem listę wszystkich zainstalowanych aplikacji na swoim komputerze. Jak mam to zrobic?
Chciałbym listę moich obecnie zainstalowanych aplikacji. Myślę, że jakoś wykorzystał WSH .
Odpowiedzi:
Jeśli korzystasz z systemu Windows Vista lub Windows 7 i nie chcesz instalować dodatkowego oprogramowania, możesz:
wmic
( Enter)product get name
( Enter)wmic
sam się wykorzystując ?)
PsInfo firmy Microsoft / Sysinternals może wyświetlić listę wszystkich zainstalowanych programów, jeśli użyjesz flagi -s podczas uruchamiania. Można również użyć opcji -c, aby wyprowadzić go jako plik csv, na przykład w programie Excel.
C:\> psinfo -s > software.txt
C:\> psinfo -s -c > software.csv
Windows 2012 R2 x64
. UżywamPsInfo ver. 1.77
psinfo is not recognized as an internal or external command, operable program or batch file.
”. I dzieje się tak nawet w oknie cmd z podwyższonymi prawami.
Skrypt PowerShell, aby je wyświetlić:
$loc = Get-ChildItem HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall
$names = $loc |foreach-object {Get-ItemProperty $_.PsPath}
foreach ($name in $names)
{
Write-Host $name.Displayname
}
Nie do końca wiersza poleceń, ale w tym celu osobiście korzystam z narzędzia odinstalowującego CCleaner i możesz wyeksportować listę zainstalowanego oprogramowania do pliku tekstowego:
Nie do końca wiersza poleceń, ale zaufany stary SIW również wykona zadanie. Podświetl Aplikacje , kliknij prawym przyciskiem → Eksportuj do → CSV, HTML, TXT lub XML :
SIW jest darmowy i przenośny, a instalacja nie jest wymagana.
Powyższe rozwiązanie CCleaner wydaje się być dobrym rozwiązaniem, chyba że zdecydujesz się użyć wiersza polecenia. Używałem wcześniej CCleaner, jest to dobre narzędzie, ale nie zakładaj, że wszystko jest zarejestrowane w aplecie Dodaj / Usuń programy (ta sama lista). Istnieje wiele aplikacji korzystających z instalacji w stylu xcopy, tzn. Po prostu rozpakuj to archiwum i uruchom. Te nie pojawią się na liście.
Aby dodać do rozwiązania MicTech - użyj wmic
i przechwyć listę zainstalowanego oprogramowania do pliku:
Otwórz okno wiersza polecenia ( Windows+ R, CMD.EXE)
wmic /OUTPUT:my_software.txt product get name
Sysinternals psinfo.exe zapewnia najbardziej kompletne informacje ze wszystkich podanych sugestii i można go uruchomić na dowolnym komputerze z systemem Windows z wiersza polecenia bezpośrednio z wiersza polecenia CMD bez podwyższonego pobierania:
\\live.sysinternals.com\tools\psinfo.exe -s > %userprofile%\Desktop\_psinfo.txt
Po uruchomieniu tego pojawi się monit bezpieczeństwa oraz monit EULA po raz pierwszy na komputerze. Plik tekstowy zostanie zapisany na bieżącym pulpicie.
Umowę EULA można automatycznie zaakceptować w następujący sposób:
\\live.sysinternals.com\tools\psinfo.exe -s /accepteula > %userprofile%\Desktop\_psinfo.txt
Istnieje przenośna aplikacja o nazwie Showmysoft. Wyświetli zainstalowane oprogramowanie na maszynie lokalnej i zdalnej oraz może eksportować do formatu PDF i CSV . Instalacja nie jest wymagana. Pobierz ze strony http://spidersoft.in/showmysoft/ .
Minimalne wymagania systemowe to Microsoft .NET Framework 2.0.
Zakodowana wersja zainstalowanych programów w języku C # za pośrednictwem rejestru 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();
}
}
}