- Windows Installer
- Where applicable
- Developer audience
- Run-time requirements
- Устранение ошибок установщика Windows, проводника и MSIEXEC
- Аннотация
- Решение
- Решение 1. Возобновление работы установщика Windows на вашем компьютере в автоматическом режиме
- Решение 2. Устранение неполадок установщика Windows
- Решение 3. Изменение реестра
- Windows Installer: то, что вендор прописал
- «Чистый MSI»
- «Комбинированный MSI»
- MSI с простой настройкой через трансформ или параметры
- MSI с мастером настройки
- MSI с файлом ответов
Windows Installer
This documentation is intended for software developers who want to use Windows Installer to build installer packages for applications. If you’re looking for a redistributable for Windows Installer 4.5 and earlier, see this article. Note that there is no redistributable for Windows Installer 5.0. This version is included with the OS in Windows 7, Windows ServerВ 2008В R2, and later client and server releases (including Windows 10).
Microsoft Windows Installer is an installation and configuration service provided with Windows. The installer service enables customers to provide better corporate deployment and provides a standard format for component management. The installer also enables the advertisement of applications and features according to the operating system. For more information, see Platform Support of Advertisement.
This documentation describes Windows InstallerВ 5.0 and earlier versions. Not all the capabilities available in later Windows Installer versions are available in earlier versions. This documentation does not describe versions earlier than Windows InstallerВ 2.0. Installation packages and patches that are created for Windows InstallerВ 2.0 can still be installed by using Windows InstallerВ 3.0 and later.
Windows InstallerВ 3.0 and later, can install multiple patches with a single transaction that integrates installation progress, rollback, and reboots. The installer can apply patches in a specified order regardless of the order that the patches are provided to the system. Patching using Windows InstallerВ 3.0 only updates files affected by the patch and can be significantly faster than earlier installer versions. Patches installed with Windows Installer 3.0 or later can be uninstalled in any order to leave the state of the product the same as if the patch was never installed. Accounts with administrator privileges can use the API of Windows InstallerВ 3.0 and later to query and inventory product, feature, component, and patch information. The installer can be used to read, edit, and replace source lists for network, URL, and media sources. Administrators can enumerate across user and install contexts, and manage source lists from an external process.
Windows Installer 4.5 and later can install multiple installation packages using transaction processing. If all the packages in the transaction cannot be installed successfully, or if the user cancels the installation, the Windows Installer can roll back changes and restore the computer to its original state. The installer ensures that all the packages belonging to a multiple-package transaction are installed or none of the packages are installed.
Beginning with Windows Installer 5.0, a package can be authored to secure new accounts, Windows Services, files, folders, and registry keys. The package can specify a security descriptor that denies permissions, specifies inheritance of permissions from a parent resource, or specifies the permissions of a new account. For information, see Securing Resources. The Windows Installer 5.0 service can enumerate all components installed on the computer and obtain the key path for the component. For more information, see Enumerating Components. By Using Services Configuration, Windows Installer 5.0 packages can customize the services on a computer. Setup developers can use Windows Installer 5.0 and Single Package Authoring to develop single installation packages capable of installing an application in either the per-machine or per-user installation context.
Where applicable
Windows Installer enables the efficient installation and configuration of your products and applications running on Windows. The installer provides new capabilities to advertise features without installing them, to install products on demand, and to add user customizations.
Windows Installer 5.0 running on Windows ServerВ 2012 or WindowsВ 8 supports the installation of approved apps on WindowsВ RT. A Windows Installer package, patch, or transform that has not been signed by Microsoft cannot be installed on WindowsВ RT. The Template Summary property indicates the platform that is compatible with an installation database and in this case should include the value for WindowsВ RT.
Windows Installer is intended for the development of desktop style applications.
Developer audience
This documentation is intended for software developers who want to make applications that use Windows Installer. It provides general background information about installation packages and the installer service. It contains complete descriptions of the application programming interface and elements of the installer database. This documentation also contains supplemental information for developers who want to use a table editor or a package creation tool to make or maintain an installation.
Run-time requirements
Windows InstallerВ 5.0 is included with, Windows 7, Windows ServerВ 2008В R2, and later releases. There is no redistributable for Windows Installer 5.0.
Versions earlier than Windows Installer 5.0 were released with Windows ServerВ 2008, WindowsВ Vista, Windows ServerВ 2003, WindowsВ XP, and WindowsВ 2000. Windows Installer Redistributables are available for Windows Installer 4.5 and some earlier versions.
Windows InstallerВ 4.5 requires Windows ServerВ 2008, WindowsВ Vista, WindowsВ XP with Service PackВ 2 (SP2) and later, and Windows ServerВ 2003 with Service PackВ 1 (SP1) and later.
Windows InstallerВ 4.0 requires WindowsВ Vista or Windows ServerВ 2008. There is no redistributable for installing Windows InstallerВ 4.0 on other operating systems. An updated version of Windows InstallerВ 4.0, which does not add any new features, is available in WindowsВ Vista with Service PackВ 1 (SP1) and Windows ServerВ 2008.
Windows InstallerВ 3.1 requires Windows ServerВ 2003, WindowsВ XP, or WindowsВ 2000 with Service PackВ 3 (SP3).
Windows InstallerВ 3.0 requires Windows ServerВ 2003, WindowsВ XP, or WindowsВ 2000 with SP3. Windows InstallerВ 3.0 is included in WindowsВ XP with Service PackВ 2 (SP2). It is available as a redistributable for WindowsВ 2000 Server with Service PackВ 3 (SP3) and WindowsВ 2000 Server with Service PackВ 4 (SP4), WindowsВ XP RTM and WindowsВ XP with Service PackВ 1 (SP1), and Windows ServerВ 2003 RTM.
Windows InstallerВ 2.0 is contained in Windows ServerВ 2003 and WindowsВ XP.
Windows InstallerВ 2.0 is available as a package for installing or upgrading to Windows InstallerВ 2.0 on WindowsВ 2000. This package should not be used to install or upgrade Windows InstallerВ 2.0 on Windows ServerВ 2003 and WindowsВ XP.
Устранение ошибок установщика Windows, проводника и MSIEXEC
Аннотация
Иногда при попытке установить или обновить программное обеспечение может появиться сообщение об ошибке. В этой статье приводятся решения для подобных ошибок.
Решение
Примечание.: В этой статье описываются шаги, дополняющие инструкции в статье Устранение неполадок установщика Windows (на английском языке) и msiexec.exe, а также устранение неполадок проводника и установщика Windows.
Для решения проблем такого рода следует изменить реестр следующим образом.
Решение 1. Возобновление работы установщика Windows на вашем компьютере в автоматическом режиме
Нажмите кнопку Пуск , введите services.msc в поле поиска и нажмите ВВОД.
В окне Службы дважды щелкните Установщик Windows.
В свойствах установщика Windows выберите тип запуска Автоматически.
Нажмите кнопку Применить для сохранения параметров, а затем — кнопку ОК.
Решение 2. Устранение неполадок установщика Windows
Перед тем как перейти к решению 3, следует проверить работу установщика Windows, выполнив действия, описанные в статье Устранение неполадок установщика Windows(на английском языке)
Решение 3. Изменение реестра
ВНИМАНИЕ!: В этой статье приводятся инструкции по изменению реестра. Прежде чем изменять реестр, создайте резервную копию, чтобы можно было восстановить реестр в случае возникновения проблем. Для получения информации о создании резервной копии, восстановлении и изменении реестра щелкните следующий номер статьи для просмотра в статье базы знаний Майкрософт:
Сведения о реестре Windows для опытных пользователей Сведения о реестре Windows для опытных пользователей
Чтобы открыть редактор реестра, нажмите кнопку Пуск , введите regedit в поле поиска и нажмите ВВОД.
Примечание.: Если появится запрос на ввод пароля администратора или подтверждение, введите пароль или подтвердите его при необходимости
В области навигации редактора реестранайдите следующий раздел:
Присвойте новое имя записи MachineThrottling — MachineThrottling. Чтобы сделать это, щелкните запись правой кнопкой мыши и выберите Переименовать.
Примечание.: если запись MachineThrottlingотсутствует, перейдите к шагам 5, 6 и 7.
Затем перезагрузите компьютер, чтобы изменения вступили в силу.
Если проблема сохранится, повторите шаги 1 и 2, а затем перейдите к шагам 5, 6 и 7.
Щелкните правой кнопкой мыши папку DisabledSessions и выберите пункт Удалить.
Подтвердите операцию, нажав кнопку Да.
Перезагрузите компьютер, чтобы изменения вступили в силу.
Примечание.: Посетите следующую страницу, чтобы проверить, установлена ли на вашем компьютере последняя версия установщика Windows: Выпущенные версии установщика Windows (на английском языке).
Нас интересует ваше мнение! Мы ждем ваших отзывов по данным статьям; их можно ввести в поле для комментариев в нижней части страницы. Ваши отзывы помогают нам повышать качество контента. Заранее спасибо!
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 вы не найдете в открытом доступе. Если у вас есть лицензия на корпоративную версию, но нет установочных файлов — смело обращайтесь в службу поддержки производителя.
Итак, установочный пакет у нас есть. Если он представляет собой файл с расширением .msi – мы имеем дело с vendor MSI (спасибо, Кэп!). Если установщик содержит набор файлов, среди которых есть файл(ы) с расширением .msi – это тоже кандидат на звание vendor MSI. Если установщик – файл с расширением .exe, его не сразу стоит списывать со счетов – есть шансы что это «обертка» и внутри обнаружится снова-таки vendor MSI.
Это можно проверить так:
• Попытаться открыть 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»
В эту категорию я отнес установщики в формате Windows Installer, устанавливающие ресурсы нестандартным для Windows Installer способом. В этом случае Windows Installer используется для вспомогательных задач, а основную часть работы выполняет бинарный Custom Action (.dll или .exe).
Пример первый – Google Chrome for Business.
Хорошо видно, что таблица File в установщике вообще отсутствует, а основную часть установки выполняет бинарный Custom Action под названием DoInstall, внутри него и находятся файлы, которые будут установлены в систему.
Еще один интересный пример – Java Runtime Environment. Извлекаем msi-файл с сопутствующим cab-файлом из оффлайн-установщика, распространяемого в формате exe-файла.
Таблица File этого vendor MSI содержит всего четыре записи, основные файлы приложения находятся внутри zip-архива (который в свою очередь находится внутри cab-файла) с последующей их распаковкой в процессе установки:
За основную часть процесса инсталляции отвечает файл regutils.dll, названия Custom Actions довольно красноречивы:
Этот тип инсталляторов несколько тяжелее поддается диагностированию ошибок – логи 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:
Другой пример известного мастера настроек – 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 скрываются иногда совершенно непохожие инсталляторы. Надеюсь, эта обзорная статья помогла вам получить представление об их многообразии и о возможных проблемах установки и способах их диагностики.