답변:
Windows Vista 또는 Windows 7 을 사용 하고 추가 소프트웨어를 설치하지 않으려는 경우 다음을 수행 할 수 있습니다.
wmic( Enter)product get name( Enter)wmic자신 을 사용하여 ?)
Microsoft / Sysinternals의 PsInfo 는 실행할 때 -s 플래그 를 사용하면 설치된 모든 소프트웨어를 나열 할 수 있습니다. 예를 들어 -c 를 사용하여 Excel에서 사용할 CSV 파일로 출력 할 수도 있습니다 .
C:\> psinfo -s > software.txt
C:\> psinfo -s -c > software.csv
Windows 2012 R2 x64. 내가 사용하고PsInfo ver. 1.77
psinfo is not recognized as an internal or external command, operable program or batch file." 오류가 발생 합니다. 그리고 이것은 높은 권한의 cmd 창에서도 발생합니다.
이들을 나열하는 PowerShell 스크립트 :
$loc = Get-ChildItem HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall
$names = $loc |foreach-object {Get-ItemProperty $_.PsPath}
foreach ($name in $names)
{
Write-Host $name.Displayname
}
정확하게 명령 줄이 아니지만이 목적을 위해 개인적으로 CCleaner의 제거 도구를 사용하며 설치된 소프트웨어 목록을 텍스트 파일로 내보낼 수 있습니다.

MicTech 솔루션에 추가하려면 wmic설치된 소프트웨어 목록을 사용 하여 파일로 캡처하십시오.
명령 줄 창을 엽니 다 ( Windows+ R, CMD.EXE)
wmic /OUTPUT:my_software.txt product get name
Sysinternals psinfo.exe는 제시된 모든 제안에 대한 가장 완전한 정보를 제공하며, 영구적으로 다운로드하지 않고 명령 줄에서 직접 CMD 프롬프트로 직접 실행할 수 있습니다.
\\live.sysinternals.com\tools\psinfo.exe -s > %userprofile%\Desktop\_psinfo.txt
이 명령을 실행할 때 보안 프롬프트가 표시되고 컴퓨터에서 처음으로 EULA 프롬프트가 표시됩니다. 텍스트 파일이 현재 바탕 화면에 저장됩니다.
다음과 같이 EULA를 자동으로 수락 할 수 있습니다.
\\live.sysinternals.com\tools\psinfo.exe -s /accepteula > %userprofile%\Desktop\_psinfo.txt
Showmysoft라는 휴대용 응용 프로그램이 있습니다. 로컬 컴퓨터 및 원격 컴퓨터에 설치된 소프트웨어가 표시되며 PDF 및 CSV로 내보낼 수 있습니다 . 설치가 필요하지 않습니다. http://spidersoft.in/showmysoft/ 에서 다운로드 하십시오 .
최소 시스템 요구 사항은 Microsoft .NET Framework 2.0입니다.
Windows 레지스트리를 통한 C # 설치 프로그램의 인코딩 된 버전 :
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();
}
}
}