답변:
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();
}
}
}