Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - вывод значения свойства Описание msp файла

Ответить
Настройки темы
Любой язык - вывод значения свойства Описание msp файла

Аватара для specialist

Старожил


Сообщения: 406
Благодарности: 108


Конфигурация

Профиль | Отправить PM | Цитировать


Изменения
Автор: specialist
Дата: 03-04-2018
всем привет!

возникла необходимость выдергивать значение свойства из msp файлов обновлений для ms office - название обновления с номером KB

благодарю Pasha_ZZZ за реализацию задачи!

запускаю командный файл сл. содержания
Код: Выделить весь код
@Echo Off
color 0B
mode con:cols=100 lines=30
Title Установка обновлений для Microsoft Office 2010
for /f %%i in ('dir /b /O-s Updates\*.msp') do (Call :SetupUpd %%i)

:SetupUpd
for /f "tokens=*" %%a in ('cscript description.vbs //B //NoLogo Updates\%1') do set "MSPName=%%a"
echo Устанавливается %MSPName%
Updates\%1 /qn /norestart
if %errorlevel% neq 0 Echo %1 installation error >>"%temp%\MSO_Update_Error_Log.txt" 
GoTo :EOF
и рядом файл description.vbs сл. содержания
Код: Выделить весь код
Const MSIOPENDATABASEMODE_PATCHFILE = 32
Set oMsi = CreateObject("WindowsInstaller.Installer")
Set msp = oMsi.OpenDatabase(WScript.Arguments(0),MSIOPENDATABASEMODE_PATCHFILE)
Set qView = msp.OpenView("SELECT `Property`,`Value` FROM MsiPatchMetadata WHERE `Property`='Description'")
qView.Execute : Set record = qView.Fetch()
WScript.StdOut.WriteLine record.StringData(2)
вывод получается такой:
Код: Выделить весь код
Устанавливается Update for Microsoft Outlook 2010 (KB4018314) 32-Bit Edition
Устанавливается Update for Microsoft SharePoint Workspace 2010 (KB2878231) 32-Bit Edition
Устанавливается Service Pack 2 for Microsoft Office 2010 (KB2687455) 32-Bit Edition
Устанавливается Service Pack 2 for Microsoft Visio 2010 (KB2687468) 32-Bit Edition
Устанавливается Security Update for Microsoft Office 2010 (KB3203468) 32-Bit Edition

-------
Все что было создано руками и умом одного человека, может быть изменено по своему образу и подобию другим. ICQ: 560-361 Блог: repacksbyspecialist.blogspot.com


Отправлено: 22:20, 26-03-2018

 

Старожил


Сообщения: 250
Благодарности: 51

Профиль | Отправить PM | Цитировать


про MSO не пробовал но вот вам может помочь

пример из https://blogs.technet.microsoft.com/...ed-properties/


```
# origin https://blogs.technet.microsoft.com/...ed-properties/

function Get-FileMetaData {


[CmdletBinding()]
param(
[Parameter(Mandatory = $true,
ValueFromPipeline = $true,
ValueFromPipelineByPropertyName = $true)]
[Alias('FullName', 'PSPath')]
[string[]]$Path
)

begin {
$oShell = New-Object -ComObject Shell.Application
}

process {
$Path | ForEach-Object {

if (Test-Path -Path $_ -PathType Leaf) {

$FileItem = Get-Item -Path $_

$oFolder = $oShell.Namespace($FileItem.DirectoryName)
$oItem = $oFolder.ParseName($FileItem.Name)

$props = @{}

0..287 | ForEach-Object {
$ExtPropName = $oFolder.GetDetailsOf($oFolder.Items, $_)
$ExtValName = $oFolder.GetDetailsOf($oItem, $_)

if (-not $props.ContainsKey($ExtPropName) -and
($ExtPropName -ne '')) {
$props.Add($ExtPropName, $ExtValName)
}

}

New-Object PSObject -Property $props
}
}

}

end {
$oShell = $null
}
}


```



пример использования -

```
. .\example.ps1
Get-FileMetaData -path 'C:\Windows\Installer\2ccc495.msp' |
select-object -property name,'Program Name','Item Type','Comments','Title','Subject' |format-list


Name : 2ccc495.msp
Program name : Windows Installer XML - SOC (3.6.3520.0)
Item type : Windows Installer Patch
Comments : KB2707250
Title : KB2707250
Subject : Hotfix for Microsoft Visual Studio 2012 - KB2707250

```

поскольку это `Shell.Application` то можно перевисать на VBS или MS Jscript
Это сообщение посчитали полезным следующие участники:

Отправлено: 06:27, 27-03-2018 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для specialist

Старожил


Сообщения: 406
Благодарности: 108

Профиль | Отправить PM | Цитировать


на одном ресурсе подсказали такое решение
Код: Выделить весь код
sFilename = "2f1f33.msp"  
sFolderPathspec = "C:\Windows\Installer"  
 
Set objShell = CreateObject ("Shell.Application")  
Set objFolder = objShell.Namespace(sFolderPathspec)  
 
File_description =  objFolder.GetDetailsOf(objFolder.Parsename(sFileName), 21)  
wscript.echo File_description
проверил - работает
осталось теперь сообразить как это пнуть в цикл перебора к установке всех файлов в папке updates из командного файла с выводом имен...

-------
Все что было создано руками и умом одного человека, может быть изменено по своему образу и подобию другим. ICQ: 560-361 Блог: repacksbyspecialist.blogspot.com


Отправлено: 10:26, 27-03-2018 | #3



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - вывод значения свойства Описание msp файла

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - [решено] Не кликабельные при сохранении файла "Рабочий стол" и "Недавние места" chrom-look Microsoft Windows 7 2 16-12-2012 02:36
Разное - [решено] Папка "Изображения" изменила значок и поменяла название на "Pictures" Kaban-keb Microsoft Windows Vista 3 22-01-2010 20:15
Почему Windows при запуске файла с именем "start.exe" показывает кнопки как "Пуск"? Котяра Хочу все знать 9 22-06-2009 13:48
Запретить/удалить пункт "Programs" ("Программы") из меню кнопки "Start" ("Пуск") submaster Microsoft Windows NT/2000/2003 5 13-09-2006 12:29




 
Переход