Как предварительно установить 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) к таблице свойств.

Добавление строки с Orca

Результирующая новая строка добавлена

Затем сгенерируйте и используйте полученный MSI Transform, как описано в другом месте.

Короткая версия: это версия, которую вы можете попробовать в первую очередь.

  1. Запустите this из командной строки (запускает административную установку - возможно):

    setup.exe /a
    
  2. Извлечение в местоположение по вашему выбору - если возможно (подробнее об извлечении ниже).

  3. Возьмите MSI и откройте его с Orca и сгенерируйте преобразование, как описано ниже - настройка SecureCustomProperties в Property table

  4. Попробуйте установить без вывода сообщений, используя либо 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 года:

Другие вопросы по тегам