Как предварительно установить MSI SecureCustomProperties, которые не определены в Свойствах, чтобы разрешить установку без вывода сообщений?
MSI конкретного производителя обычно устанавливается через оболочку EXE, но я пытаюсь выполнить установку без вывода сообщений через GPO. Я изо всех сил пытаюсь предварительно установить SecureCustomProperties.
Поставщик документирует параметры командной строки UPPERCASE, которые можно передать в оболочку EXE, и я предполагаю, что они передаются в MSI. Используя Orca, я вижу, что таблица свойств MSI содержит SecureCustomProperties. Значение этого ключа представляет собой список всех задокументированных параметров, разделенных точкой с запятой, UPPERCASE.
Однако каждый отдельный параметр не имеет соответствующего ключа в свойствах. Как я могу предварительно установить это?
По словам Как лучше использовать файлы MSI
Вы можете найти большинство свойств, перечисленных в таблице свойств файла MSI, но также возможно, что можно установить некоторые свойства, которые не определены в таблице свойств. В большинстве случаев это относится к свойствам, устанавливаемым только из графического интерфейса настройки (в большинстве случаев указывает на ошибку проектирования установки). Все свойства должны быть определены в таблице свойств в правильно созданном пакете.
Могу ли я просто добавить каждый параметр в качестве ключа в свойствах и добавить свое собственное значение? Если так, я должен оставить параметры в SecureCustomProperties?
Пример:
SecureCustomProperties: BLAH1;BLAH2;DBHEADER;BLAH4
DBHEADER не является ключом в свойствах. Как мне установить значение DBHEADER?
2 ответа
Методом проб и ошибок я обнаружил, что использование Orca для добавления отсутствующих ключей в таблицу свойств работает.
Пример:
SecureCustomProperties: BLAH1;BLAH2;DBHEADER;BLAH4
DBHEADER не существует как ключ (строка) в свойстве, поэтому мы не можем его установить.
Решение:
Добавьте ключ DBHEADER с моим желаемым значением (Live
) к таблице свойств.
Затем сгенерируйте и используйте полученный MSI Transform, как описано в другом месте.
Короткая версия: это версия, которую вы можете попробовать в первую очередь.
Запустите this из командной строки (запускает административную установку - возможно):
setup.exe /a
Извлечение в местоположение по вашему выбору - если возможно (подробнее об извлечении ниже).
Возьмите MSI и откройте его с Orca и сгенерируйте преобразование, как описано ниже - настройка
SecureCustomProperties
вProperty table
Попробуйте установить без вывода сообщений, используя либо setup.exe, либо msiexec.exe, если MSI запускается самостоятельно (выберите одну из следующих командных строк):
setup.exe /s /v"TRANSFORMS=\"C:\Transforms\1.mst\"" setup.exe /s /f1”c:\temp\my-answer-file.iss” /v"C:\Transforms\1.mst" msiexec.exe /I "C:\Your.msi" /QN /L*V "C:\msilog.log" TRANSFORMS="C:\My.mst"
В пункте 4 командные строки предназначены для Basic MSI
, Installscript MSI
а также vanilla, extracted MSI
соответственно. Для Installscript MSI необходим файл ответов. Это может быть найдено в извлечении, или иначе это должно быть сгенерировано. Увидеть ниже.
Преобразовать: I would use a transform
, Преобразования могут изменить "что угодно" в MSI, и, следовательно, он может легко установить SecureCustomProperties
также. По сути, это свойство является мерой безопасности (ограничивающей то, какие свойства можно передать процессу установки с повышенными правами из последовательности графического интерфейса), и, следовательно, я предполагаю, что они не хотят, чтобы его можно было установить через командную строку (мое предположение).
Setup.exe против MSI: вы можете попробовать развернуть setup.exe
непосредственно с помощью команды установки без вывода сообщений, или вы можете попытаться извлечь встроенный файл MSI вместе с его предварительными требованиями из setup.exe
и развернуть их отдельно. Очень часто предварительные условия не требуются для развертывания, например.NET Framework. С извлеченным MSI также гораздо проще работать, поскольку он поддерживает стандартизированные командные строки, позвольте мне показать краткий пример:
msiexec.exe /I "C:\Your.msi" /QN /L*V "C:\msilog.log" TRANSFORMS="C:\1031.mst;C:\My.mst"
Краткое объяснение параметров:
/I = run install sequence
/QN = run completely silently
/L*V "C:\msilog.log" = verbose logging
TRANSFORMS="C:\1031.mst;C:\My.mst" = Apply transforms 1031.mst and My.mst (see below).
Извлечение файла: к сожалению setup.exe
может быть много вещей, начиная от legacy installers
, чтобы Installscript MSI
в Basic MSI
(как от Installshield), так и от других поставщиков. Они даже могут быть Installshield Suite projects
- которые имеют совершенно другую командную строку снова. Это установщики, которые могут устанавливать любое количество файлов EXE и MSI по очереди. На днях я написал аналогичный ответ на тему, как извлекать файлы И / ИЛИ устанавливать без вывода сообщений: создайте MSI из извлеченных установочных файлов - пожалуйста, просмотрите этот ответ. Он фокусируется на извлечении файлов, но также описывает автоматическую установку с использованием setup.exe
,
Прежде чем пытаться что-то еще, попробуйте это:
setup.exe /a
Посмотрите, получите ли вы приглашение указать выходное местоположение. Если вы делаете, распакуйте файлы. Вам нужно будет извлечь файлы, чтобы получить файл MSI, чтобы создать преобразование.
Предложения: Как указано, вы можете извлечь setup.exe
или попробуйте запустить его молча. Я предпочитаю извлечение, но позвольте мне предложить некоторые возможные командные строки для автоматической установки через setup.exe
, Я не знаю деталей вашего setup.exe
, но позвольте мне сделать несколько предположений:
Базовый MSI:
setup.exe /s /v"TRANSFORMS=\"C:\Transforms\1.mst\""
Installscript MSI:
Шаг 1: Запишите файл ответов:
setup.exe /r /f1”c:\temp\my-answer-file.iss”
Шаг 2. Базовая установка без вывода сообщений (с использованием файла ответов) и применение преобразования:
setup.exe /s /f1”c:\temp\my-answer-file.iss” /v"C:\Transforms\1.mst"
Создание преобразования: вы можете создать преобразование в Orca или любом другом инструменте развертывания MSI. Бесплатные инструменты. Основные инструменты (бесплатные и коммерческие). В Orca вы открываете MSI, а затем идете Transforms => New Transform
, Затем вы изменяете то, что вам нужно изменить - в вашем случае таблицу свойств и SecureCustomProperties. Когда ты готов: Transforms => Generate Transform...
Теперь сохраните преобразование.
Файл справки Installshield:
В справочном файле Installshield есть несколько соответствующих разделов. Пожалуйста, изучите их, если вам нужно больше настроек параметров установки. Все переключатели описаны здесь - эти ссылки для издания Installshield 2018 года:
- Параметры командной строки Setup.exe и Update.exe (базовый MSI, Installscript MSI)
- Параметры командной строки Advanced UI и Suite/Advanced UI Setup.exe (проекты Suite)