А АSunday 11 July 2021

Конвертация ЕХЕ в MSI.

Всем привет.

Опять я по инсталлирование приложений через SCCM как Application. Так вот если вы все-таки решили сделать все красиво, а у вас  в наличии только инсталляционный ЕХЕ-модуль приложения и поиски скрытых ключей в сети не привели к положительному результату то есть другой способ.

Конвертация ЕХЕ в MSI сторонним инструментом. Самый простой из них и пока бесплатный это применение AppDeploy Repackager. Собственно с его помощью получаете  на выходе MSI-модуль без особых усилий.


Если вам все-таки надо поправить некоторые параметры полученного модуля до выпуска его в работу то задействуйте утилиту Microsoft Orca. Orca является редактором таблиц базы данных для создания и редактирования пакетов установщика Windows и модулей слияния. Orca предоставляет графический интерфейс для проверки, выделяя определенные записи, в которых возникают ошибки или предупреждения проверки.

Что может понадобиться еще? Это GUID для штатного процесса деинсталяции приложения. Выглядит как {2FF988D8-F631-4ED3-BCB0-7ABC79D9A10E}. Где найти? Опять же либо в сети, либо находите ПК где это приложение установлено и читаете из реестра IdentifyingNumber так: 

wmic product get > InstalledPrograms.txt

Или так:

get-wmiobject Win32_Product | sort-object -property Name | Format-Table IdentifyingNumber, Name, LocalPackage -AutoSize

Или так:

$UninstallKeys = "HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall", "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall"

$null = New-PSDrive -Name HKA -PSProvider Registry -Root Registry::HKEY_USERS

$UninstallKeys += Get-ChildItem HKU: -ErrorAction SilentlyContinue | Where-Object { $_.Name -match 'S-\d-\d+-(\d+-){1,14}\d+$' } | ForEach-Object { "HKU:\$($_.PSChildName)\Software\Microsoft\Windows\CurrentVersion\Uninstall" }

foreach ($UninstallKey in $UninstallKeys) {

Get-ChildItem -Path $UninstallKey -ErrorAction SilentlyContinue | Where {$_.PSChildName -match '^{[A-Z0-9]{8}-([A-Z0-9]{4}-){3}[A-Z0-9]{12}}$'} | Select-Object @{n='GUID';e={$_.PSChildName}}, @{n='Name'; e={$_.GetValue('DisplayName')}}

}

Обращаю ваше внимание что версия ОС и ее битность должны быть соответствующие и само приложение должно было быть проинсталлировано корректно.

Успехов.


No comments:

Post a Comment

А что вы думаете по этому поводу?

Версия на печать

Популярное