Я скомпилировал эту программу аудита некоторое время назад, когда я работал ИТ-специалистом в моем местном университете, и я довольно застрял в том, чтобы фактически взять текущий рабочий диск и извлечь все файлы из Программы и Программирует x86 для успешного создания этого приложения вместо использования реестра (ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ \ Microsoft \ Windows \ CurrentVersion \ Uninstall), поскольку не все программы тянут только некоторые.
Кроме того, я не уверен, как получить текущий диск активного каталога, в котором скрипт находится изначально во второй выделенной части, и создать папку, в которой он сохраняет файл как системное имя msinfo32.exe вновая папка.
(не имеет значения, как ее зовут), это долгосрочная цель, в которой я пытался достичь, и я абсолютно потерян.
' Sample VBScript to Export list of Installed Programs into CSV File.
' ------------------------------------------------------
const HKEY_LOCAL_MACHINE = &H80000002
Dim strComputer, strKeyPath
strComputer = "."
' Registry key path of Control panel items for installed programs
strKeyPath = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\"
Dim objReg, strSubkey, arrSubkeys
Set objReg=GetObject( _
"winmgmts:{impersonationLevel=impersonate}!\\" & _
strComputer & "\root\default:StdRegProv")
objReg.EnumKey HKEY_LOCAL_MACHINE, strKeyPath, arrSubkeys
Dim objFSO, objCSVFile
' Create CSV file
Const ForWriting = 2
Set objFSO = CreateObject("Scripting.FileSystemObject")
' Here, I have given CSV file path as "Installed-Softwares.csv", this will create Installed-Softwares.csv file
' where you placed and execute this VB Script file. You can give your own file path
' like "C:\Users\Administrator\Desktop\Installed-Softwares.csv"
Set objCSVFile = objFSO.CreateTextFile("F:\Custom\Installed-Softwares.csv", _
ForWriting, True)**
' Write Software property names as CSV columns(first line)
objCSVFile.Write "Name,Version,Publisher,Location,Size"
objCSVFile.Writeline ' New Line
Dim Name,Version,Publisher,Location,Size
'Enumerate registry keys.
For Each strSubkey In arrSubkeys
objReg.GetStringValue HKEY_LOCAL_MACHINE, strKeyPath & strSubkey, "DisplayName" , Name
If Name <> "" Then
objReg.GetStringValue HKEY_LOCAL_MACHINE, strKeyPath & strSubkey, "DisplayVersion", Version
objReg.GetStringValue HKEY_LOCAL_MACHINE, strKeyPath & strSubkey, "Publisher",Publisher
objReg.GetStringValue HKEY_LOCAL_MACHINE, strKeyPath & strSubkey, "InstallLocation", Location
objReg.GetDWORDValue HKEY_LOCAL_MACHINE, strKeyPath & strSubkey, "EstimatedSize" , Size
If Size <> "" Then
Size= Round(Size/1024, 3) & " MB"
Else
Size= "0 MB"
End If
objCSVFile.Write Name &","&Version&","&Publisher&","&Location&","&Size
objCSVFile.Writeline ' New Line
End If
Next
WScript.Quit
Комментарий: например, извлечь из (C: \ например или текущий основной диск) программные файлы и программные файлы x86 -> поместить в список -> output Currentdrive: \ newfolder \ msinfo32systemname.
Кроме того, этоотображая 0 МБ вместо фактического МБ, я заметил, что выходной файл делает это.Это работает в сочетании с другими файлами, ни в коем случае я фактически не кодировал это полностью с нуля.
Кредит: https://www.morgantechspace.com/2014/04/VBScript-to-Get-List-of-Installed-Software-through-Registry.html