Какова цель административной установки, инициированной с помощью msiexec /a?
Технология установщика Windows поддерживает административную установку. Командная строка для запуска административной установки: msiexec /a setup.msi. Я хочу понять цель этого типа установки и в каких сценариях они полезны?
3 ответа
В реальном мире это не имеет такой большой ценности вообще. MSI был разработан в те времена, когда на компьютере обычно был жесткий диск объемом 2–20 ГБ. Они придумали все эти рекламные сценарии "беги из источника", которые тогда казались по-настоящему крутыми, но в реальной жизни их так и не завоевали.
Сегодня то, что делает для меня, разработчика установки, это простой способ "извлечь" MSI и проверить его содержимое. Вот и все.
Административная установка: добавление некоторых практических примеров.
1)
Бесшумное извлечение (без графического интерфейса):msiexec.exe /A MySetup.msi TARGETDIR=D:\Extract\ /QN /L*V D:\Extract.log
2)
Интерактивное извлечение (настройка GUI для извлечения):msiexec.exe /A MySetup.msi
Быстрое объяснение параметров:
- /A - run administrative installation sequence. - /QN - run completely silently (alternatively: /QB! for semi-silent). - /L*V "Extract.log" - create verbose log file. - TARGETDIR - destination path for file extraction (top level folder).
3)
Немногоsetup.exe
файлы могут запускать административную установку черезsetup.exe /a
Msiexec (command-line options)
- Обзор MSDN.- Вот
the Technet version
,
- Извлечь MSI из EXE
- Параметры командной строки Setup.exe и Update.exe
- Настройка извлечения файла, альтернатива
Назначение административных установок
Административные установки обычно наиболее полезны в сценариях крупномасштабного развертывания, когда программное обеспечение устанавливается на многих компьютерах одновременно, например, в большом банке с тысячами рабочих станций. На самом деле это очень важно для таких сценариев развертывания. Как упаковщик приложений, первое, что вы склонны делать, это установить администратором, чтобы проверить содержимое и структуру файла MSI.
Операции в административной установке
Сама программа установки администратора просто извлекает файлы из внутренних файлов cab и настраивает медиа -формат файла MSI, чтобы использовать извлеченные файлы для установки вместо внутренних файлов cab. Конечным результатом является аккуратная иерархия папок, показывающая, куда файлы будут попадать в целевую систему, и файл MSI меньшего размера, чем исходный, теперь очищенный от внутренних cab-файлов. Операция не вносит изменений в целевую систему, кроме этого извлечения, если только MSI не спроектирован специально для этого, что является серьезной ошибкой проектирования почти во всех случаях. Исключения, вне моей головы, могут включать настройку файлов лицензирования или пост-обработку файлов для развертывания каким-либо образом. Я никогда не видел таких конструкций в реальной жизни, но есть возможность добавить пользовательские действия для установок администратора.
Использование административных установок
После установки администратором извлеченные файлы можно поместить в общую сетевую папку, доступную с тысяч рабочих станций, и установить ее оттуда. Обычно это делается с помощью специализированного программного обеспечения для развертывания, такого как SCCM (ранее Microsoft SMS) или аналогичного. Однако в некоторых случаях установка также может быть инициирована пользователем на рабочей станции вручную. Критическим преимуществом этой установки общего сетевого ресурса является то, что операции самовосстановления и последующие установки исправлений и обновлений на рабочие станции имеют доступ к исходным исходным файлам, поэтому установки завершаются успешно. Возможно, вы столкнулись с тем, что Microsoft Office внезапно попросит вас вставить установочные компакт-диски, чтобы переустановить несколько файлов. Это может произойти и с рабочими станциями, если источники не будут доступны онлайн. Это требование к источнику может измениться в будущем, так как Microsoft кэширует все больше и больше содержимого установщика на каждом локальном компьютере (Windows 7 и более поздние версии, ОБНОВЛЕНИЕ, январь 2018 г. Более подробные сведения об этом кэшировании см. В этом ответе. Почему для продолжения MSI требуется исходный MSI-файл? с деинсталляцией?). Я должен добавить, что вы также можете поместить неэкстрагированный MSI-файл в такое место, не распаковывая его через образ администратора, но используя установку администратора, вы можете скачать любой файл отдельно (без огромной загрузки из кабины). Для огромных файлов MSI это важно, и я предпочитаю образы администратора в качестве источника установки, чтобы сделать исправление более надежным - это субъективное предпочтение, но оно связано с реальным опытом.
Административные установки и исправления
Наконец, для создания патчей MSI обычно требуется установка администратора для исходной установки, а также для новой установки. Затем создается файл исправления установщика Windows на основе различий между новой и старой папками установщика. Как таковые установки администратора имеют решающее значение для последующего создания файлов исправлений. Это относится к Wise for Windows Installer - единственному продукту, который я нашел для создания действительно надежных исправлений в реальной жизни (этот продукт уже не в продаже, некоторые подробности здесь: какой установочный продукт использовать? InstallShield, WiX, Wise, Advanced Установщик и т. Д.). Опять субъективное наблюдение, основанное на всесторонних реальных испытаниях.
Кроме того, можно установить исправление установки администратора, если вы получаете MSI и MSP (файл пути) от поставщика. Вы извлекаете MSI и исправляете образ администратора с помощью MSP. Целевая папка будет содержать более новый MSI и любые новые файлы (при условии, что исправление для администратора работает, чего, как правило, нет в моем опыте).
"Беги от источника"
Крис упоминает "Запускать из исходного кода", и это действительно довольно бесполезная и устаревшая концепция, когда некоторые файлы в инсталляции могут быть оставлены на общем сетевом ресурсе и доступны прямо оттуда. Честно говоря, я не пробовал эту функцию в течение многих лет.
Эта функция используется редко, но я полагаю, что она может быть полезна в сценариях, где общий набор файлов ресурсов должен быть доступен для всех рабочих станций, и вы хотите избежать массового дублирования. Исправления к файлам ресурсов могут быть затем развернуты с помощью "патча установки администратора", как описано выше, без переустановки чего-либо на рабочие станции (насколько хорошо это работает, неясно - причиной может быть отсутствие использования этой функции).
Большой программный пакет с множеством разнородных модулей, в которых только несколько человек используются разными людьми, может значительно ускорить установку и использование, установив лишь несколько необходимых функций, а оставшуюся можно будет запускать из исходного кода или устанавливать при первом использовании. Это ускорит установку и последующие установки исправлений и может оставить потенциально небезопасные и ненужные двоичные файлы вне системы. Этот последний момент может быть важен в закрытых средах. Однако в реальной жизни я видел, как исправления изменяют объявленные функции для локальной установки после исправления, что является очень странным и нежелательным поведением, но очень распространенным для опыта. На практике я нахожу "запустить из источника" или рекламируемые функции очень ограниченного использования. Обычно лучше разбить установку на две части, одну для клиента и одну для установки сервера.
ОБНОВЛЕНИЕ:
Вот новое резюме той же проблемы: установка администратора и его использование (извлечение файла и далее). Пожалуйста, прочтите также комментарий ниже " Изменено поведение кэширования MSI в Windows 7 и более поздних версиях ".
Скажем, вам нужно установить продукт X на определенное количество машин, и вам также потребуется применить некоторые исправления для X. Вместо того, чтобы применять серию исправлений на каждой машине, вы можете сделать это:
- Создать административный образ для X
- Примените патчи к административному образу
- Установите X на каждую машину, используя пропатченный образ
Это может сэкономить время и усилия, и вы будете знать, что все ваши машины будут на одном уровне исправлений.
Если у вас есть настройка для каждого пользователя и система, которая запрещает установку пользователем с помощью, например, групповой политики, то пользователь сможет выполнить установку из msi, созданного в целевой папке с помощью административной установки. Это способ разрешить установку программного обеспечения.