Что такое msi файл

Windows Installer: то, что вендор прописал

Продолжая тему работы с Windows Installer, сегодня предлагаю поговорить о готовых инсталляторах, предоставляемых производителями ПО – для их обозначения широко применяется термин «vendor MSI».

Как вы помните из прошлой статьи, Windows Installer является промышленным стандартом установочных файлов и используется в большинстве систем развертывания приложений. Vendor MSI очень удобны для системных администраторов, занимающихся развертыванием ПО в корпоративных сетях. Казалось бы, достаточно взять из документации установочные параметры, использовать их в командной строке или трансформе – и дело сделано. Всё ли так просто?

Предлагаю заглянуть внутрь нескольких vendor MSI и разобраться с их устройством.

Из всякого правила есть исключения. Несмотря на то, что инсталляционный пакет прошел тестирование производителя, будьте готовы столкнуться с непредвиденным поведением в процессе установки, возникающим именно в ваших неповторимых условиях.

Естественно, при подготовке приложения к развертыванию в корпоративной среде нужно руководствоваться в первую очередь рекомендациями производителя ПО. Однако иногда система развертывания понимает только формат MSI, а вендор предоставляет только exe-инсталлятор — в этом случае есть смысл попытаться заполучить именно vendor MSI.

Где взять vendor MSI?

Предположим, нужно развернуть некоторое приложение в нашей сети. Обычно у нас есть установочный пакет, полученный от производителя ПО – скопированный с установочного диска, скачанный с официального сайта и т.д.
Если у нас нет установочного пакета – идем на рутрекер сайт производителя и ищем пакет там. На сайте нет пакета в формате MSI, только онлайн-установщик или setup.exe? Попробуем поискать получше. Часто msi-файл для корпоративных пользователей вместе с инструкциями по развертыванию находится не на главной странице, а в разделе сайта с громким названием вроде «For business» (например, Google Chrome или Skype), или на ftp производителя. Если есть выбор из online и offline установщика – выбираем offline вариант.

Простое правило – установочный пакет (в любом формате) можно скачивать только с официального сайта (или ftp) производителя. НИКОГДА не качайте установщик с «файловых архивов» и «каталогов программ», дабы не столкнуться с неприятным сюрпризом.
Естественно, полные версии платных приложений вроде Adobe Creative Suite вы не найдете в открытом доступе. Если у вас есть лицензия на корпоративную версию, но нет установочных файлов — смело обращайтесь в службу поддержки производителя.

Это можно проверить так:
• Попытаться открыть exe-файл с помощью программы-архиватора (7-zip, WinRAR).
• Запустить установку приложения из имеющегося exe-файла и заглянуть во временные папки (%temp%). Обычно во время установки создается папка со случайным названием, в ней находятся установочные файлы, включая msi-файл. Копируем установочные файлы в надежное место – после окончания процесса установки временная папка удаляется.
• Заглянуть в журналы событий по окончанию установки и проверить наличие свежих записей о событиях с источником MsiInstaller.
ваш вариант?

Начнем с простого эксперимента на установщике iTunes – откроем файл iTunesSetup.exe с помощью 7-zip и видим, что он включает сразу пять msi-файлов (решить сколько из них «лишние» предлагаю вам самостоятельно).
Убедившись, что мы имеем дело с vendor MSI, продолжаем исследование.

Для удобства предлагаю выделить основные категории vendor MSI. Классификация совершенно условна и основана лишь на личном опыте.

По типу ресурсов:

• «Чистый MSI»
• «Комбинированный MSI»

По типу настройки:

• MSI с простой настройкой через трансформ или параметры
• MSI с мастером настройки
• MSI с файлом ответов

Теперь о каждом немного подробнее и с примерами.

«Чистый MSI»

Общее свойство установщиков такого типа – использование нативных механизмов Windows Installer для установки файлов и ключей реестра. Соответствующие этим ресурсам записи присутствуют в таблицах MSI (File, Registry, Shortcut и т.д.). Для внесения изменений в установку достаточно отредактировать записи этих таблиц в трансформе — вы имеете практически полный котроль над процессом инсталляции.

Простые примеры «чистых MSI» – Skype, InstEd.
Для диагностирования проблем с такими установщиками используются стандартные возможности – чтение записей журнала событий (журнал Application, события с источником MsiInstaller) или полное логирование установки (запуск msiexec с параметром /l*v ).

«Комбинированный MSI»

Пример первый – Google Chrome for Business.
Что такое msi файл. Смотреть фото Что такое msi файл. Смотреть картинку Что такое msi файл. Картинка про Что такое msi файл. Фото Что такое msi файл
Хорошо видно, что таблица File в установщике вообще отсутствует, а основную часть установки выполняет бинарный Custom Action под названием DoInstall, внутри него и находятся файлы, которые будут установлены в систему.

Еще один интересный пример – Java Runtime Environment. Извлекаем msi-файл с сопутствующим cab-файлом из оффлайн-установщика, распространяемого в формате exe-файла.
Таблица File этого vendor MSI содержит всего четыре записи, основные файлы приложения находятся внутри zip-архива (который в свою очередь находится внутри cab-файла) с последующей их распаковкой в процессе установки:
Что такое msi файл. Смотреть фото Что такое msi файл. Смотреть картинку Что такое msi файл. Картинка про Что такое msi файл. Фото Что такое msi файл
За основную часть процесса инсталляции отвечает файл regutils.dll, названия Custom Actions довольно красноречивы:
Что такое msi файл. Смотреть фото Что такое msi файл. Смотреть картинку Что такое msi файл. Картинка про Что такое msi файл. Фото Что такое msi файл

Этот тип инсталляторов несколько тяжелее поддается диагностированию ошибок – логи Windows Installer дадут нам полезную информацию только до момента запуска внутреннего exe-файла, а сам exe-файл не всегда генерирует внятные сообщения при возникновении ошибок. Также такие vendor MSI тяжелее поддаются настройке. Вернее сказать, наши возможности настройки процесса установки чаще всего ограничены только настройками, предусмотренными производителем ПО. Например, производитель ПО не всегда предусматривает возможность отключения установки ярлыков или внесения изменений в файлы настройки приложения при его установке.

Инсталляторы такого типа иногда преподносят неприятные сюрпризы в процессе установки (приходилось разбираться с JRE и Adobe Flash Player, сваливавшимися на выполнении Custom Action), и на диагностику и исправление ошибок может понадобиться некоторое время.

Теперь перейдем к возможностям настройки пакетов, предлагаемым нам производителями ПО.

MSI с простой настройкой через трансформ или параметры

Это самый распространенный способ – большинство vendor MSI имеют возможность такой настройки. Обычно производитель уже предусмотрел самые востребованные настройки вроде отключения автообновлений приложения и настроек подключения к серверу, и описал это в документации. Настройки могут быть описаны в виде параметров командной строки установщика, параметров MSI (MSI properties) или даже описания реестровых записей, которые вы можете добавить в трансформ для пакета.
Стоит упомянуть, что иногда в более новой версии vendor MSI параметры могут вести себя не так, как в предыдущей (или совсем перестать работать, как когда-то произошло с переставшими работать параметрами отключения автообновлений JRE), но это бывает крайне редко.

MSI с мастером настройки

Некоторые вендоры не ограничиваются публикацией перечня параметров командной строки для установки и настройки пакета. Они предоставляют утилиту для тонкой настройки инсталлятора, выполняющую несколько полезных функций:
• Интуитивно-понятный интерфейс избавляет системного администратора от необходимости открывать msi-файл в редакторе и вручную изменять большое количество записей в таблицах
• Утилита обычно предусматривает некоторую «защиту от дурака» и производит проверку правильности значений изменяемых параметров.

В результате выполнения мастера настроек для msi-файла формируется трансформ, который будет использоваться при развертывании пакета. Естественно, вы можете просмотреть содержимое сохраненного трансформа, применив его к открытому в редакторе msi-файлу.
Хорошим примером такого подхода может служить Adobe Customization Wizard, используемый для настройки параметров установки Adobe Reader и Adobe Acrobat:
Что такое msi файл. Смотреть фото Что такое msi файл. Смотреть картинку Что такое msi файл. Картинка про Что такое msi файл. Фото Что такое msi файл

Другой пример известного мастера настроек – Office Customization Tool (OCT). Эта утилита позволяет сконфигурировать большое количество параметров, относящихся к установке и пользовательским настройкам MS Office. В результате выполнения мастера создается MSP-файл (патч в терминологии Windows Installer), который используется при дальнейшем развертывании MS Office в корпоративной среде.

MSI с файлом ответов

Этот тип инсталляционных пакетов скорее нужно было назвать «Setup.exe с файлом ответов». Идея состоит в том, что некий установочный файл (назовем его Setup.exe) читает некий предварительно сформированный системным администратором конфигурационный файл (config.xml) и формирует набор параметров для запуска расположенного рядом установочного msi-файла (или нескольких msi-файлов).
Этот подход не предусматривает нашей работы непосредственно с msi-файлом, поэтому не будем на нем останавливаться слишком подробно. Упомяну примеры таких установщиков – файлы настроек Adobe Creative Suite (версии CS2-CS3), а также использование файла ответов config.xml для установки MS Office.
Обычно для диагностики в случае проблем установки можно использовать создаваемый программой-установщиком лог-файл с описанием этапов выполнения; дополнительная информация от Windows Installer также попадает в журналы событий.

Как видите, за общим названием vendor MSI скрываются иногда совершенно непохожие инсталляторы. Надеюсь, эта обзорная статья помогла вам получить представление об их многообразии и о возможных проблемах установки и способах их диагностики.

Источник

Windows Installer изнутри

Устройство и развертывание пакетных файлов

Технология Windows Installer

Продукты, функции и компоненты

.msi-файл представляет собой сложную базу инструкций по установке приложений, которая содержит десятки таблиц, сотни столбцов и иногда вложенные файлы. В базе данных хранится информация о требованиях операционной системы к установке приложения, этапах установки и даже диалоговых окнах, выводимых на экран.

.msi-файл имеет трехуровневую структуру. Высший уровень — продукт, собственно приложение. Продукту присваивается уникальный код — глобально уникальный идентификатор (globally unique identifier, GUID). На следующем уровне располагаются функциональные блоки внутри продукта. Функциональные блоки имеют имена и могут быть добавлены по желанию пользователя. На экране 1 показан пример функциональных блоков в приложении — в данном случае Microsoft Office Access и Microsoft Office Excel в пакете установки Microsoft Office. Функциональный блок — это единый блок для установки внутри пакета Windows Installer. Устанавливаются (или удаляются) функциональные блоки пакета, а не отдельные файлы.

Что такое msi файл. Смотреть фото Что такое msi файл. Смотреть картинку Что такое msi файл. Картинка про Что такое msi файл. Фото Что такое msi файл
Экран 1. Функциональные блоки приложения, упакованного для Windows Installer

На экране 1 видно, что Excel состоит из множества функциональных подблоков, таких как Help и Spreadsheet Templates. Во время установки пользователь может указать подблоки, которые следует установить на компьютере локально или запускать с сервера, добавить при первом обращении к ним (обозначается единицей в пиктограмме подблока) или вообще не требуется устанавливать. Метод «объявления» (advertisement) подблоков описан по врезке «Возможности объявлений».

База данных Windows Installer

Что такое msi файл. Смотреть фото Что такое msi файл. Смотреть картинку Что такое msi файл. Картинка про Что такое msi файл. Фото Что такое msi файл
Экран 2. Таблицы базы данных приложения, упакованного для Windows Installer

На экране 2 показана таблица LaunchCondition пакета Windows Installer для Group Policy Management Console (GPMC). В правой панели таблицы представлены минимальные требования к операционной системе и платформе для установки GPMC. В столбце Condition содержатся условия, которые должны быть выполнены в процессе установки. В столбце Description описаны минимальные требования для набора условий. Приступая к установке приложения, Windows Installer проверяет, удовлетворены ли условия запуска, прежде чем продолжить установку.

Таблицы последовательностей (sequence table) представляют собой ядро базы данных; в них перечислены действия, которые служба Windows Installer должна выполнить в процессе установки, и порядок их выполнения. Например, в таблице последовательностей указывается, что механизм Installer должен сначала проверить условия запуска в таблице LaunchCondition, затем скопировать исходные файлы в каталог назначения и подготовить набор элементов реестра. Таблицы последовательностей бывают трех типов: Admin, Advertisement и Install. Тип таблицы последовательностей, используемый Windows Installer, зависит от типа выполняемой процедуры установки. Описания типов таблиц последовательностей даны в таблице 1.

С каждой таблицей последовательностей связаны две вспомогательные таблицы. Одна из них — InstallUISequence — определяет диалоговые окна пользовательского интерфейса, которые должны отображаться при интерактивной (управляемой пользователем) установке. Другая таблица — так называемая таблица «исполнительной последовательности» (execute sequence; InstallExecuteSequence) — определяет шаги, необходимые для установки.

Последовательность состоит из набора заранее определенных стандартных функций, которые перечислены в столбце Action таблицы InstallExecuteSequence. Стандартные функции выполняют разнообразные задачи, в том числе копирование файлов, поиск новых версий программы и определение размера дискового пространства, доступного при установке. В документации SDK и Orca приведены подробные сведения о назначении конкретного пакета Windows Installer. С помощью Orca можно подготовить специальные операции для задач, которые нельзя решить с использованием стандартных функций пакета Windows Installer. Специальная операция может быть DLL, составленной пользователем, и даже сценарием VBScript для таких действий, как поиск в Active Directory (AD) определенных значений перед продолжением установки.

Трансформации, исправления и модули слияния

Служба Windows Installer

В частности, служба Installer создает новый процесс msiexec.exe в контексте безопасности пользователя для выполнения той части установки, которая проводится в пользовательском профиле. Служба Installer использует собственный повышенный контекст безопасности (учетную запись LocalSystem) для выполнения специфической для данного компьютера части процедуры установки, для проведения которой у пользователя полномочий нет. Приложения, развернутые таким способом, называются управляемыми (managed applications). Повышение полномочий, используемое Windows Installer для управляемых приложений, как правило, возможно только при применении групповой политики, хотя метод доступен и вне процедур на базе Group Policy Object (GPO), через политику Administrative Template.

Хранение файлов Installer на рабочей станции

Запуск Installer Files из командной строки и в сценариях

Существует два дополнительных способа запуска пакетных установок Windows Installer — из командной строки и сценария. С помощью msiexec.exe можно выполнять различные процедуры установки из командной строки. Полный список функций командной строки для msiexec.exe приведен в статье Microsoft «Command-Line Switches for the Microsoft Windows Installer Tool» по адресу http://support.microsoft.com/?kbid=227091. Например, из командной строки можно установить один функциональный блок в прикладном пакете, такой как инструменты консоли DNS в пакете Windows 2003 Administration Tools (adminpak.msi). С помощью Orca следует отыскать нужное имя функционального блока — в данном случае FeDNSConsole — и запустить msiexec.exe из командной строки, чтобы произвести установку:

Свойство ADDLOCAL используется данной командой, чтобы указать службе Windows Installer функциональные блоки пакета, которые необходимо установить. Метод командной строки используется вместо выбора функциональных блоков пользователями или установки отдельных блоков администратором с помощью файла трансформации.

Даррен Мар-Элиа — редактор журнала Windows & NET Magazine. С ним можно связаться по адресу: dmarelia@winnetmag.net

Возможности объявлений

Объявление приложений — компонент Windows Installer, который широко используется при развертывании приложений с помощью Group Policy. Объявленное приложение на самом деле не устанавливается на настольном компьютере пользователя, обозначается лишь «присутствие» приложения. Это может быть ярлык на рабочем столе или в меню Start, ассоциирование файлов в реестре и даже COM-компонент, зарегистрированный в HKEY_CLASSES_ROOT. Объявление оповещает пользователя о том, что приложение установлено и готово к использованию. Однако сами файлы приложения разворачиваются лишь после первого обращения пользователя к приложению. Преимущество объявлений заключается в том, что приложения доступны, но устанавливаются лишь после того, как в них возникает необходимость. Благодаря объявлениям, администратору, обслуживающему 20 тыс. настольных компьютеров, приходится обновлять приложения только на компьютерах, пользователи которых действительно работают с этими программами. Недостаток объявлений — вынужденное ожидание в течение нескольких минут, пока система устанавливает приложение для первого запуска.

Типы таблиц последовательностей

Поделитесь материалом с коллегами и друзьями

Источник

Расширение файла MSI

Windows Installer Package

Что такое файл MSI?

Программы, которые поддерживают MSI расширение файла

Программы, которые могут обрабатывать MSI файлы, следующие. MSI файлы можно встретить на всех системных платформах, включая мобильные, но нет гарантии, что каждый из них будет должным образом поддерживать такие файлы.

Программы, обслуживающие файл MSI

Как открыть файл MSI?

Отсутствие возможности открывать файлы с расширением MSI может иметь различное происхождение. С другой стороны, наиболее часто встречающиеся проблемы, связанные с файлами Windows Installer Package, не являются сложными. В большинстве случаев они могут быть решены быстро и эффективно без помощи специалиста. Ниже приведен список рекомендаций, которые помогут вам выявить и решить проблемы, связанные с файлами.

Шаг 1. Скачайте и установите Windows Installer

Шаг 2. Обновите Windows Installer до последней версии

Что такое msi файл. Смотреть фото Что такое msi файл. Смотреть картинку Что такое msi файл. Картинка про Что такое msi файл. Фото Что такое msi файлЕсли проблемы с открытием файлов MSI по-прежнему возникают даже после установки Windows Installer, возможно, у вас устаревшая версия программного обеспечения. Проверьте веб-сайт разработчика, доступна ли более новая версия Windows Installer. Разработчики программного обеспечения могут реализовать поддержку более современных форматов файлов в обновленных версиях своих продуктов. Это может быть одной из причин, по которой MSI файлы не совместимы с Windows Installer. Последняя версия Windows Installer должна поддерживать все форматы файлов, которые совместимы со старыми версиями программного обеспечения.

Шаг 3. Свяжите файлы Windows Installer Package с Windows Installer

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

Что такое msi файл. Смотреть фото Что такое msi файл. Смотреть картинку Что такое msi файл. Картинка про Что такое msi файл. Фото Что такое msi файл

Выбор приложения первого выбора в Windows

Выбор приложения первого выбора в Mac OS

Шаг 4. Проверьте MSI на наличие ошибок

Если проблема по-прежнему возникает после выполнения шагов 1-3, проверьте, является ли файл MSI действительным. Отсутствие доступа к файлу может быть связано с различными проблемами.

Что такое msi файл. Смотреть фото Что такое msi файл. Смотреть картинку Что такое msi файл. Картинка про Что такое msi файл. Фото Что такое msi файл

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

2. Убедитесь, что файл с расширением MSI завершен и не содержит ошибок

Если файл MSI был отправлен вам кем-то другим, попросите этого человека отправить вам файл. В процессе копирования файла могут возникнуть ошибки, делающие файл неполным или поврежденным. Это может быть источником проблем с файлом. Если файл MSI был загружен из Интернета только частично, попробуйте загрузить его заново.

3. Проверьте, есть ли у пользователя, вошедшего в систему, права администратора.

Существует вероятность того, что данный файл может быть доступен только пользователям с достаточными системными привилегиями. Переключитесь на учетную запись с необходимыми привилегиями и попробуйте снова открыть файл Windows Installer Package.

4. Убедитесь, что в системе достаточно ресурсов для запуска Windows Installer

Если в системе недостаточно ресурсов для открытия файлов MSI, попробуйте закрыть все запущенные в данный момент приложения и повторите попытку.

5. Убедитесь, что у вас установлены последние версии драйверов, системных обновлений и исправлений

Последние версии программ и драйверов могут помочь вам решить проблемы с файлами Windows Installer Package и обеспечить безопасность вашего устройства и операционной системы. Возможно, что одно из доступных обновлений системы или драйверов может решить проблемы с файлами MSI, влияющими на более старые версии данного программного обеспечения.

Вы хотите помочь?

Если у Вас есть дополнительная информация о расширение файла MSI мы будем признательны, если Вы поделитесь ею с пользователями нашего сайта. Воспользуйтесь формуляром, находящимся здесь и отправьте нам свою информацию о файле MSI.

Источник

Как извлечь файлы из пакета MSI?

У нас есть несколько старых патчей, из которых мы хотим получить файлы, но не хотим тратить время на их установку на компьютер.

Кто-нибудь может посоветовать способ извлечения файлов из установочного пакета MSI?

Сначала зайдите в командную строку с повышенными правами, чтобы сделать это:

Нажмите кнопку Пуск.

Нажмите Все программы.

Зайди в аксессуары.

Щелкните правой кнопкой мыши на командной строке.

Выберите «Запуск от имени администратора».

Когда появится приглашение UAC, нажмите «Продолжить».

Получив командную строку с повышенными правами, введите следующее:

используя нужные места для заполнения вышеупомянутых путей к файлам. Пример:

И это с открытым исходным кодом, так что не надоедливые сообщения, просящие вас купить вещи

Существует также Lessmsi, который является полностью бесплатным и открытым исходным кодом.

Есть встроенная поддержка MSI для извлечения файлов (установка администратора)

Обратите внимание, что запуск административной установки по сравнению с использованием zip-инструмента для извлечения файлов очень отличается! Последний не будет корректировать макет мультимедиа таблицы мультимедиа так, чтобы пакет был настроен на использование внешних исходных файлов, что является правильным способом. Всегда предпочитайте запускать фактическую установку администратора поверх любых хакерских извлечений из zip. Что касается сжатия, на самом деле есть три различных алгоритма сжатия, используемых для файлов cab в формате файлов MSI: MSZip, LZX и Storing (без сжатия). Все они обрабатываются правильно путем установки администратора.

Admin-установки имеют много применений

По сути, установка администратора важна для:

Админ-установка, практические инструкции

Запустите эти команды из командной строки с повышенными привилегиями и следуйте инструкциям в графическом интерфейсе для интерактивных командных строк:

MSI файлы :

это для запуска с графическим интерфейсом, вы можете сделать это тоже молча:

файлы setup.exe :

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *