DenSyo
Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору 5peciali5t как все просто оказывается))) тогда такой вариант скрипта который собирает инфу по всем патчам в текстовый файл Код: Dim oMsi,oFso,oWShell,ts Dim Patches,SumInfo Dim patch,record,msp Dim qView Dim sTargetFolder,sMessage Const OFFICEID = "000-0000000FF1CE}" Const PRODUCTCODE_EMPTY = "" Const MACHINESID = "" Const MSIINSTALLCONTEXT_MACHINE = 4 Const MSIPATCHSTATE_APPLIED = 1 Const MSIOPENDATABASEMODE_PATCHFILE = 32 Const PID_SUBJECT = 3 'Displayname Const PID_TEMPLATES = 7 'PatchTargets Set oMsi = CreateObject("WindowsInstaller.Installer") Set oFso = CreateObject("Scripting.FileSystemObject") Set oWShell = CreateObject("Wscript.Shell") sTargetFolder = oWShell.ExpandEnvironmentStrings("d:\temp")&"\Updates" If Not oFso.FolderExists(sTargetFolder) Then oFso.CreateFolder sTargetFolder Set ts = oFso.createTextFile(sTargetFolder & "\result.txt") Set Patches = oMsi.PatchesEx(PRODUCTCODE_EMPTY,MACHINESID,MSIINSTALLCONTEXT_MACHINE,MSIPATCHSTATE_APPLIED) On Error Resume Next For Each patch in Patches If Not Err = 0 Then Err.Clear Set msp = oMsi.OpenDatabase(patch.PatchProperty("LocalPackage"),MSIOPENDATABASEMODE_PATCHFILE) Set SumInfo = msp.SummaryInformation If Err = 0 Then Set qView = msp.OpenView("SELECT `Property`,`Value` FROM MsiPatchMetadata WHERE `Property`='DisplayName'") qView.Execute : Set record = qView.Fetch() ts.Write(record.StringData(1) & ": " & record.StringData(2) & chr(13) & chr(10)) End If Next 'patch ts.close oWShell.Run "explorer /e,"&chr(34)&sTargetFolder&chr(34) | свойства можно попробовать всякие, их видно в файле. найти один, например, DisplayName или Description, остальные рядом будут. |