|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - вывод значения свойства Описание msp файла |
|
Любой язык - вывод значения свойства Описание msp файла
|
Старожил Сообщения: 406 |
Профиль | Отправить PM | Цитировать
всем привет!
возникла необходимость выдергивать значение свойства из 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 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 |
|
------- Отправлено: 22:20, 26-03-2018 |
Старожил Сообщения: 250
|
Профиль | Отправить 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 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 406
|
Профиль | Отправить 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 из командного файла с выводом имен... |
------- Отправлено: 10:26, 27-03-2018 | #3 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - [решено] Не кликабельные при сохранении файла "Рабочий стол" и "Недавние места" | 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 |
|