С чего начать изучение Windows Installer?
Технология Windows Installer (MSI) является стандартом де-факто в мире системных администраторов, занимающихся распространением и поддержкой программного обеспечения для десктопных и серверных версий Windows. Формат MSI поддерживается всеми крупнейшими системами управления конфигурациями (Microsoft SCCM, CA Unicenter и многими другими), а для некоторых систем распространения ПО — является единственным поддерживаемым форматом.
Мой опыт работы с этой технологией — как теоретический, так и практический — приобретен за время работы в компании «Инфопульс Украина» и связан с созданием MSI-пакетов и подготовкой готовых MSI-пакетов к автоматической установке в корпоративной среде.
Зачем это вам?
Если вы занимаетесь централизованной установкой приложений в сетях Windows, знание формата MSI и умение создавать и редактировать пакеты в этом формате вам может здорово пригодиться при подготовке пакета к развертыванию и диагностике проблем. В Европе и США технология Windows Installer востребована многими крупными заказчиками, поэтому знание MSI может быть плюсом для системного администратора при трудоустройстве.
Что нужно знать и уметь перед началом изучения?
Ничего сложного. Если у вас есть опыт администрирования и поддержки небольшой (а лучше большой, иерархической) сети Windows-машин, вероятнее всего вы уже сталкивались с основными вопросами и понятиями, которые вам понадобятся. Перед тем, как начать, убедитесь, что вы хорошо понимаете структуру файловой системы Windows, структуру профиля пользователя и структуру реестра, знаете что такое процессы и службы в Windows, умеете управлять учетными записями пользователей и знаете где находятся журналы событий. Для того, чтобы научиться создавать пакеты MSI, вам совсем необязательно иметь опыт разработчика, хотя конечно лучше если такой опыт у вас есть. И совсем не обязательно уметь писать запросы на SQL, хотя это тоже может пригодиться (ведь каждый MSI-файл — это небольшая реляционная база данных). Но обязательно нужно уметь читать и понимать техническую документацию на английском, без этого скорее всего ничего не получится. При изучении теории (и при создании пакетов на практике) постарайтесь хотя бы на первых порах строго следовать стандартам Windows Installer, избегая вспомогательных утилит типа InstallShield/InstallScript, так вы лучше поймёте как правильно создать MSI-пакет.
Готовим песочницу и начинаем практику
Начать нужно с установки и настройки виртуальной машины. В процессе обучения вам придется немало поэкспериментировать, поэтому лучше сделать это в песочнице. Если нужны бесплатные продукты — устанавливаем VirtualBox или VMWare Player (для профессиональных задач их функционала может быть недостаточно, но для обучения — вполне подойдет). В виртуальной машине, естественно, нужно установить Windows на ваш выбор (XP и выше).
Если у вас уже есть опыт работы с утилитами от Sysinternals — прекрасно. Если нет — самое время восполнить пробел. Нам понадобятся минимум две: для отслеживания файловой и реестровой активности приложения при установке или во время его работы — Process Monitor, для запуска инсталляции от имени учетной записи LocalSystem — PsExec. Попрактикуйтесь использовать эти утилиты на простом приложении типа notepad (с какими ресурсами работает notepad при открытии файла, при сохранении файла; запустите notepad от имени пользователя LocalSystem, поэкспериментируйте с сохранением файлов и установкой файловых ассоциаций), в дальнейшем эти навыки пригодятся.
Установите Panda QuickShot или другой софт для сравнения состояний системы. Разберитесь с основным функционалом, научитесь отслеживать файловые и реестровые изменения в системе при установке нового приложения или изменении параметров системы (самое простое — зарегистрируйте новую файловую ассоциацию для notepad, измените обои рабочего стола и отследите где хранятся эти настройки). Подойдите к этому творчески, поле для экспериментов обширное.
Скачайте MSI-инсталлятор какого-нибудь несложного приложения (например, Orca, InstEd или Firefox). Установите пакет на виртуальной машине, с помощью описанных выше утилит изучите устанавливаемые им ресурсы. Научитесь пользоваться командной строкой Windows Installer (msiexec /?), поэкспериментируйте с различными опциями установки и сравните результат. Выполните удаление приложения из командной строки, установите пакет в автоматическом (silent) режиме.
Установите InstEd или Orca на хост-машине. Откройте MSI-пакет, который вы устанавливали на виртуальной машине, с помощью одной из этих утилит. Сравните записи основных таблиц в MSI-пакете (File, Directory, Registry) с ресурсами (файлы, папки, ключи реестра), установленными этим пакетом на вашей виртуальной машине (результат сравнения снимков состояний с помощью Panda QuickShot).
Немного теории
- Таблица Property, код продукта (ProductCode), код пакета (PackageCode), стандартные свойства в MSI;
- Таблица Upgrade и код обновления (UpgradeCode);
- Таблицы Feature, Component и их назначение;
- Таблицы Directory, File, Registry, Shortcut; приложения, поставляемых с MSI-пакетом, таблица Media; , их создание и применение из командной строки.
Обзор утилит и документации
Бесплатно можно использовать простые редакторы MSI-файлов с ограниченным функционалом — здесь упоминания заслуживают классическая Orca от Microsoft и довольно удобный InstEd. Эти редакторы позволяют вносить небольшие изменения в готовые MSI-файлы, создавать и применять трансформы, но создавать в них MSI-пакеты с нуля довольно непросто (а для больших пакетов — и вовсе не имеет смысла). Но если вы действительно хотите изучить технологию MSI, вам просто необходимо собрать пару простых пакетов в InstEd или Orca и выполнить их валидацию на соответствие стандарту Windows Installer.
Специализированные утилиты для выполнения setup capture (создания или конвертирования установочных пакетов из так называемых «старых форматов»» в формат MSI с использованием сравнения «снимков» системы до и после установки приложения или мониторинга изменений в системе «на лету») — бесплатный AppDeploy Repackager, или более серьезный MSI Generator. MSI-пакетам, созданным с использованием этих утилит, может потребоваться некоторая доработка, которую можно выполнить с помощью редактора MSI.
Серьёзные полнофункциональные (и весьма дорогие) IDE, обеспечивающие поддержку полного цикла работ с MSI-пакетами — если вы будете заниматься технологией MSI профессионально, вам скорее всего не обойтись без этих программ. В этом сегменте до недавнего времени доминировали два продукта — AdminStudio от Flexera и Wise Package Studio от Symantec, но недавно Symantec объявил о прекращении работ по развитию Wise Package Studio, и рынок переходит в руки Flexera. Кроме работы с MSI, AdminStudio позволяет работать с виртуальными пакетами форматов Microsoft App-V, VMware Thin App и Citrix XenApp. Для ознакомительных целей доступна пробная 21-дневная версия.
Отдельно стоит упомянуть WIX (Windows Installer XML) — набор утилит для создания MSI-файлов из XML-описаний. Этот проект был выпущен «Майкрософтом» под открытой лицензией Common Public License, поддерживает интерфейс командной строки и может использоваться для автоматизации создания версий инсталляционных пакетов. Хорошее описание есть на Хабре.
msiexec.exe Установщик Windows®
Установщик Windows (msiexec.exe) облегчает процесс установки программного обеспечения в Windows 10 в соответствии с архитектурной основой операционной системы.
Крайне важно, чтобы процесс установки и настройки программы проходил гладко и без проблем. По этой причине разработчики, как правило, используют службу установщика Windows, чтобы облегчить пользователям установку программного обеспечения. Таким образом, поставщики минимизируют совокупную стоимость владения для своих клиентов.
Что такое файл пакета установщика Windows (MSI)
Информация об установке программного обеспечения объединена в так называемые установочные пакеты. Они содержат .msi файлы с:
● База данных и рекомендации по разработке установщика для приложений и служб.
● Преобразования, модификации и контроль версий
● API для удаленного доступа к установленным приложениям / программному обеспечению
Процесс Msiexec (расшифровывается как исполняемый файл установщика Microsoft) помогает устанавливать сторонние приложения, связанные в формате MSI. Когда пользователь дважды щелкает файл пакета .msi, служба установщика Windows (msiexec.exe) автоматически запускает процесс установки.
Приложения Microsoft Store против приложений для настольных компьютеров
В течение многих лет Microsoft поощряла поставщиков использовать установщик Windows в качестве основного помощника при установке. В целях безопасности многие пользователи в настоящее время предпочитают загружать приложения из Магазина Microsoft непроверенным установщикам, найденным на неизвестных веб-сайтах. Таким образом они гарантируют, что приложение, которое они устанавливают на свой компьютер, не являются вирусом и не принесут вреда их системе.
Почему выгодно использовать установщик Windows
Несмотря на то, что существуют другие способы установки приложений в Windows 10, третьи стороны часто используют службу установщика Windows и связывают информацию об установке с этой службой. Одна из причин — его функции не ограничиваются только установкой программ. Установщик Windows также может выполнять некоторые другие важные задачи. Например, поставщики программного обеспечения используют его для рекламы своих продуктов, при этом пользователям не нужно сначала устанавливать приложение. Также есть возможность устанавливать продукты по запросу, а также настраивать их функции.
Еще одной важной характеристикой установщика Windows является откат установки. Установщик Windows гарантирует, что в случае неудачной установки система вернется в свое состояние перед установкой. Это означает, что все файлы, которые были удалены и перезаписаны во время установки, будут восстановлены.
Проблемы, связанные с установщиком Windows
Пользователи могут столкнуться с различными проблемами при работе с установщиком Windows. Среди них «Cлужба установки Windows не может быть доступна» ошибка. Это довольно распространенная проблема, поэтому есть два возможных решения:
Способ 1. Запустите службу установщика Microsoft из диалогового окна «Выполнить»
- Откройте диалоговое окно «Выполнить» с помощью сочетания клавиш Windows + R на клавиатуре.
- Введите services.msc и нажмите кнопку ОК
- Найдите опцию Windows Installer в списке сервисов в окне Сервис
- Дважды щелкните службу установщика Windows. Откроется окно свойств установщика Windows.
- Проверьте, активен ли сервисный статус. Если он остановлен, нажмите кнопку «Пуск», а затем подтвердите изменение, нажав «ОК».
6. Перезагрузите компьютер, чтобы увидеть, устранена ли проблема
Способ 2 — переустановите установщик Windows
1.Нажмите Windows + R на клавиатуре, и появится диалоговое окно «Выполнить».
2. Введите cmd и подтвердите, нажав OK
3. Вставьте эти команды одну за другой:
● cd% windir% \ system32
● ren msi.dll msi.old
● ren msiexec.exe msiexec.old
● ren msihnd.dll msihnd.old
4. Введите команду выхода
Как только вы закончите с этим процессом, перезагрузите компьютер и установите последнюю версию установщика Windows (найдите ее на официальном сайте Microsoft). После этого перезагрузите компьютер снова.
Эти простые шаги помогут вам справиться с этой проблемой. Если это не решит проблему, возможно, вы захотите углубиться в тему на веб-сайте Microsoft или перейти на надежные технические форумы.
Формат файла MSI — описание, как открыть?
Файл формата MSI открывается специальными программами. Чтобы открыть данный формат, скачайте одну из предложенных программ.
Чем открыть файл в формате MSI
Формат MSI (полн. Windows Installer Package) представляет собой файл, являющийся одним из основных инсталляционных компонентов Windows. Расширение MSI включает установочный архив, необходимый для оперативной и корректной инсталляции различных программных приложений на платформе Windows. Данный формат может быть эффективно использован как для установки внешнего программного обеспечения от сторонних разработчиков, так и для обновления компонентов операционной системы. MSI файл содержит исчерпывающую информацию, которая требуется инсталлятору для корректной установки утилиты (плагина) и обработки интерфейса пользователя.
Каждый подобный инсталляционный пакет в виде MSI файла включает структурированную базу данных на основе OLE, которая представляет собой набор из взаимосвязанных электронных таблиц с данными о программном приложении и последовательности процессов его установки.
Необходимо понимать, что процесс инсталляции может быть разбит на несколько этапов и включать в себя определенные сценарии: сбор данных, вызов исполнительных команд, отвечающих за установку, вероятный откат в случае сбоя операционной системы и прерывания инсталляции.
Помимо базы данных в виде электронных таблиц, MSI расширение может содержать пользовательские проекты (написанные на JScript, VBScript или Eclipse), различные динамические DLL библиотеки (если того требует установка), а также сами инсталляционные пакеты в виде CAB архивов.
Так как стандартный MSI файл – пакет данных, то распаковать его можно с использованием типового архиватора, например, 7-Zip.
Доступен он будет также и при помощи командной строки cmd.exe, в которой следует выполнить команду: msiexec /a c:filename.msi /qb TARGETDIR=c:tmp.
Следует отметить, что полным аналогом MSI расширения является MSU. Однако последнее функционирует исключительно на платформе Windows Vista.
Программы для открытия MSI файлов
MSI расширение может быть сгенерировано и открыто для редактирования только на базе ОС-Windows.
Для этого могут быть использованы следующие программных комплексы и архиваторы данных:
На платформе Mac и Linux практическое использование расширения не предусмотрено.
Если при открытии расширения MSI возникает ошибка, причины могут заключаться в следующем:
- поврежден или инфицирован файл;
- файл не связан с реестром ОС (выбрано некорректное приложение для воспроизведения или не произведена инсталляция конкретного плагина);
- недостаточно ресурсов устройства или ОС;
- поврежденные или устаревшие драйвера.
Конвертация MSI в другие форматы
Уникальная структура и область применения MSI для каждого конкретного случая не предоставляют возможностей для конвертации данного формата в другие расширения. Попытки конвертации расширения в другой формат могут не только не дать никаких практических результатов, но и повредить исходный файл.
Почему именно MSI и в чем его достоинства?
MSI расширение не является востребованным в среде обычных пользователей и применяется сугубо как инсталляционный компонент Windows, необходимый для определения последовательности этапов и включающий в себя определенные сценарии:
- сбор инсталляционных данных;
- вызов исполнительных команд, отвечающих за установку;
- вероятностный откат в случае сбоя операционной системы и прерывания инсталляции.
Содержит информацию инсталляции для конкретной программы установки, например, файлы, которые должны быть установлены, и директория инсталляции. Может применяться для обновлений Windows, а также сторонних установщиков программ.
Содержимое пакета MSI может извлекаться при помощи утилиты декомпрессии файлов 7-Zip.
Примечание: в Windows Vista файлы .MSU используются для установки системных обновлений и хотфиксов.
Пакет установщика windows msi что это
What’s on this Page
.MSI вариант №
Файл MSI, используемый для установки и запуска программ Windows. полный пакет для Microsoft Windows, который содержит информацию об установке типичной программы, включая основные файлы, которые необходимо установить, и информацию о месте установки. Файлы MSI также могут содержать пакет обновлений программного обеспечения. Файлы MSI похожи на EXE, но иногда EXE может не включать информацию об установщике, и программа может запускаться непосредственно при выполнении файла EXE.
Формат MSI-файла
Установщик Windows на самом деле представляет собой API (интерфейс прикладного программирования) и программный компонент Microsoft Windows, используемый для установки, удаления и обслуживания программного обеспечения. Информация об установке и необязательные файлы упакованы в виде установочных пакетов и свободно реляционных баз данных, структурированных как COM-структурированные хранилища; хорошо известные как файлы MSI, имеющие расширение .msi. Пакеты с расширением файла .mst содержат скрипты трансформации установщика Windows, файлы с расширением .msm содержат модули слияния и файл с расширением .pcp используется для Свойства создания исправления. Установщик Windows становится более продвинутым после значительных изменений по сравнению с его более ранними версиями, API установки. Структура графического интерфейса и автоматическое создание последовательности удаления — новые функции установщика Windows. В настоящее время он рассматривается как альтернатива автономным исполняемым средам установки.
Логическая структура пакетов MSI
Пакет обозначает установку одного или нескольких полных продуктов и обычно идентифицируется GUID. Продукт состоит из одного или нескольких компонентов и сгруппирован по различным функциям. Установщик Windows не обрабатывает зависимости между различными продуктами одновременно. Логическая структура пакетов состоит из следующих элементов: