ฉันเคยเห็นชายคนหนึ่งเรียกใช้คำสั่งและได้รับรายการแอปพลิเคชันที่ติดตั้งทั้งหมดบนคอมพิวเตอร์ของเขา ฉันจะทำสิ่งนี้ได้อย่างไร
ฉันต้องการรายการแอปพลิเคชันที่ติดตั้งอยู่ในปัจจุบัน ผมเชื่อว่าเขาใช้WSHอย่างใด
ฉันเคยเห็นชายคนหนึ่งเรียกใช้คำสั่งและได้รับรายการแอปพลิเคชันที่ติดตั้งทั้งหมดบนคอมพิวเตอร์ของเขา ฉันจะทำสิ่งนี้ได้อย่างไร
ฉันต้องการรายการแอปพลิเคชันที่ติดตั้งอยู่ในปัจจุบัน ผมเชื่อว่าเขาใช้WSHอย่างใด
คำตอบ:
หากคุณใช้Windows Vistaหรือ Windows 7 และคุณไม่ต้องการติดตั้งซอฟต์แวร์เพิ่มเติมคุณสามารถ:
wmic
( Enter)product get name
( Enter)wmic
มันเอง?)
PsInfoจาก Microsoft / Sysinternals สามารถแสดงรายการซอฟต์แวร์ที่ติดตั้งทั้งหมดหากคุณใช้แฟล็ก -sเมื่อคุณเรียกใช้ คุณยังสามารถใช้-cเพื่อส่งออกเป็นไฟล์ csv เพื่อใช้ใน Excel เช่น
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เป็นการส่วนตัวและคุณสามารถส่งออกรายการซอฟต์แวร์ที่ติดตั้งไปยังไฟล์ข้อความ:
โซลูชัน CCleaner ด้านบนดูเหมือนจะเป็นวิธีที่เหมาะสมในการดำเนินการแก้ไขเว้นแต่คุณจะตัดสินใจใช้บรรทัดคำสั่ง ฉันเคยใช้ CCleaner มาก่อนมันเป็นเครื่องมือที่ดี แต่อย่าทึกทักว่าทุกอย่างมีการลงทะเบียนในแอปเพล็ต Add / Remove Programs (รายการเดียวกัน) มีแอพมากมายที่ใช้การติดตั้งสไตล์ xcopy เช่นเพียงเปิดเครื่องรูดไฟล์เก็บถาวรนี้และเรียกใช้ สิ่งเหล่านั้นจะไม่ปรากฏในรายการ
วิธีเพิ่มโซลูชันของ MicTech - ใช้wmic
และบันทึกรายการซอฟต์แวร์ที่ติดตั้งลงในไฟล์:
เปิดหน้าต่างบรรทัดคำสั่ง ( Windows+ R, CMD.EXE)
wmic /OUTPUT:my_software.txt product get name
Sysinternals psinfo.exe ให้ข้อมูลที่สมบูรณ์ที่สุดของคำแนะนำทั้งหมดที่ให้ไว้และสามารถเรียกใช้บนพีซี Windows ใด ๆ จากบรรทัดคำสั่งโดยตรงจากพรอมต์ 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
รุ่นที่เข้ารหัสในโปรแกรมที่ติดตั้ง C # ผ่านการลงทะเบียน 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();
}
}
}