Windows installer start page on msdn

Часто встречаемые ошибки установщика Windows Installer при установке программ из дистрибутива .msi и способы их устранения. Отдельно решение проблем с исходными файлами и внутренние ошибки службы Windows.

Что делать если не работает установщик Windows InstallerДовольно распространённая проблема среди пользователей операционной системы Windows любых версий – ошибка msi при установке программ из файла с расширением .msi. В этой статье я опишу часто встречаемые проблемы с установщиком Windows 7/10/XP и варианты их решения, а также сделаю видео по текущему вопросу.

Файлы с расширением .msi это обычные пакеты установки (дистрибутивы) из которых ставится программа. В отличии от обычных «setup.exe», для запуска файла msi система использует службу Windows Installer (процесс msiexec.exe). Говоря простыми словами, установщик Windows разархивирует и запускает файлы из дистрибутива. Когда Windows Installer не работает, то появляются различные ошибки.

Вообще, меня это жутко бесит, т.к. после глупого сообщения об ошибке совсем непонятно что делать дальше. Microsoft специально разработали установщик Windows Installer для расширения возможностей установки программ (в основном это касается системных администраторов), но не позаботились должным образом о безглючной работе этой службы или хотя бы об адекватных сообщениях о проблемах. А нам теперь это разгребать 🙂

Неполадки могут быть с работой самой службы или могут возникать в процессе установки программ, когда всё настроено, в принципе, правильно. В первом случае нужно ковырять службу установщика, а во втором решать проблему с конкретным файлом. Рассмотрим оба варианта, но сначала второй.

Ошибки msi файлов

Очень часто ошибки появляются из-за недостаточных прав системы на файлы или папки. Нельзя сказать, что Windows Installer не работает, в этом случае достаточно просто добавить нужные права и всё заработает. Буквально вчера я столкнулся с тем, что скаченный дистрибутив .msi не захотел устанавливаться, при этом успешно запускается мастер установки, выбираются параметры, но затем система думает несколько секунд и выдаёт ошибку:

Error reading from file Error 1305

«Error reading from file «имя файла» verify that the file exists and that you can access it» (Error 1305). Переводится «Ошибка чтения из файла … проверьте существует ли файл и имеете ли вы к нему доступ». Ну не тупняк ли? Естественно, что кнопка «Повторить» не помогает, а отмена прекращает всю установку. Сообщение особой смысловой нагрузки также не несёт, т.к. файл точно существует и я имею к нему доступ, иначе бы просто не смог его запустить и получить это сообщение, к тому же почему-то на английском языке 🙂

А ошибка в том, что не Я должен иметь доступ к файлу, а установщик Windows, точнее сама Система. Решается очень просто:

  1. Кликаем правой кнопкой по файлу с расширением .msi, выбираем «Свойства»
  2. На вкладке «Безопасность» смотрим, есть ли в списке пользователь с именем «система» или «System»Вкладка "Безопасность" в Windows 7
  3. Скорее всего вы такого не увидите. Поэтому будем добавлять вручную. Нажимаем кнопку «Изменить…», затем «Добавить…»
  4. В поле пишем «система» или «System» (если у вас английская Windows) и нажимаем «Проверить имена». При этом слово должно стать подчёркнутым как на картинке.Добавить права и проверить имена
  5. Нажимаем «ОК», ставим галочку «Полный доступ», «ОК»
  6. Кнопка «Дополнительно» -> «Изменить разрешения…» ставим «Добавить разрешения,  наследуемые от родительских объектов», «ОК» три раза.

Теперь ошибка установщика не появится! Можно добавить доступ на всю папку, из которой вы обычно инсталлируете программы, например на папку «Downloads», как у меня. Смотрим видео по решению проблем с правами доступа:

В Windows XP вкладки «Безопасность» не будет, если включён простой общий доступ к файлам. Чтобы его выключить, нужно зайти в и выключить опцию «Использовать простой общий доступ к файлам». В урезанных версиях Windows 7/10 и XP вкладки «Безопасность» нет в принципе. Чтобы её увидеть, нужно загрузить Windows в безопасном режиме и зайти в неё под администратором.

Ещё способы решить проблему

  • Запускайте установку, войдя в систему под администраторским аккаунтом
  • Правой кнопкой по пакету «.msi» и выбираем «Запуск от имени Администратора»
  • Выключите антивирус на время
  • Включить режим совместимости с предыдущими операционными системами. Для этого зайдите в свойства файла msi и на вкладке «Совместимость» поставьте галочку «Запустить программу в режиме совместимости»
    Включение режима совместимости в Windows 7
  • Если файл на флешке, то попробуйте скопировать его куда-нибудь на жёсткий диск и запустить оттуда (бывает, что запрещена установка программ со съёмных накопителей)
  • Попробуйте просто создать новую папку с любым именем в корне диска, перекинуть туда дистрибутив и запустить его оттуда

Описанный метод поможет при разных сообщениях, с разными номерами. Например, вы можете видеть такие ошибки файлов msi:

  • Error 1723
  • Internal Error 2203
  • Системная ошибка 2147287035
  • Ошибка «Невозможно открыть этот установочный пакет»
  • Ошибка 1603: Во время установки произошла неустранимая ошибка

Во всех этих случаях должна помочь установка прав на файл и/или на некоторые системные папки. Проверьте, имеет ли доступ «система» к папке временных файлов (вы можете получать ошибку «Системе не удается открыть указанное устройство или файл»). Для этого:

  1. Сначала узнаем нужные пути. Нажмите «Win + Pause» и зайдите в Дополнительные параметры системы
  2. В списках ищем переменные с названиями «TEMP» и «TMP» (значения обычно совпадают), в них записаны пути к временным папкам, которые использует установщик WindowsВременные папки в Windows 7
  3. Теперь идём к этим папкам и смотрим в их свойствах, имеет ли к ним доступ «система». Чтобы быстро получить путь к временной папке пользователя, кликните два раза по переменной, скопируйте путь и вставьте его в адресной строке «Проводника» Windows

Путь к временной папке TEMP

После нажатия «Enter» путь преобразится на «нормальный» и вы переместитесь в реальную временную папку. Права на неё и надо проверять. Также рекомендую очистить временные папки от всего что там скопилось или даже лучше удалить их и создать новые с такими же названиями. Если не получается удалить папку, почитайте как удалить неудаляемое, но это не обязательно.

Если служба Windows Installer всё равно не хочет работать, то проверьте права на папку «C:Config.Msi», сюда «система» также должна иметь полный доступ. В этом случае вы могли наблюдать ошибку «Error 1310». На всякий случай убедитесь, что к папке КУДА вы инсталлируете софт также есть все права.

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

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

Ошибка установщика Windows

В случае общих проблем не будут устанавливаться никакие msi файлы, процесс установки, скорее всего, даже не начнётся. При этом могут появляться ошибки вида:

  • Нет доступа к службе установщика Windows
  • Не удалось получить доступ к службе установщика Windows
  • Ошибка пакета установщика Windows (1719)

или ещё нечто подобное со словами «ошибка msi», «Windows Installer Error». Всё это означает, что система дала сбой и теперь её надо лечить. Может вы ставили какой-то софт, который испортил системные файлы и реестр, или подхватили вирус. Конечно, никогда не будет лишним удалить вирусы, или убедиться что их нет. Но оставьте этот вариант на потом, т.к. обычно проблема кроется в другом.

Сначала давайте проверим работает ли служба Windows Installer:

  1. Нажмите «Win + R» и введите services.msc
  2. Найдите в конце списка службу «Установщик Windows» или «Windows Installer»Служба установщик Windows Installer
  3. Тип запуска должен быть «Вручную». Если она «Отключена», то зайдите в «Свойства» и выберите «Вручную»
  4. Затем кликните по ней правой кнопкой и выберите «Запустить» или «Перезапустить». Если ошибок нет и состояние переходит в режим «Работает», то здесь всё нормально.
  5. Нажмите «Win + R» и введите msiexec. Если модуль MSI работает нормально, то должно появиться окно с версией установщика и параметрами запуска, а не ошибка.

Следующее что я посоветую сделать – это выполнить команду сканирования системы на повреждённые и изменённые системные файлы. Нажмите «Win + R» и введите

Sfc /scannow

Произойдёт поиск и замена испорченных файлов на оригинальные, при этом может потребоваться вставить установочный диск с Windows XP-7-10. После окончания процесса перегрузитесь и посмотрите, решена ли проблема.

Microsoft сам предлагает утилиту, призванную решить нашу проблему. Запустите программу Easy Fix и следуйте мастеру.

Скачать Easy Fix

Параметры реестра и службы

Следующий способ устранения ошибки – восстановление рабочих параметров в реестре установщика Windows Installer.

Скачать msiserver.reg

Для этого скачайте архив и запустите оттуда два reg-файла, соответственно своей версии Windows. Согласитесь с импортом настроек.

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

В Windows XP или Windows Server 2000 установите последнюю версию установщика 4.5.

Скачать Windows Installer 4.5

Если не помогло, то проделайте ещё перерегистрацию компонентов:

  1. Нажмите «Win + R» и введите «cmd». Затем в чёрном окне введите последовательно команды:
    MSIExec /unregister
    MSIExec /regserver
  2. В ответ должна быть пустота, никаких ошибок. Если проблема не решена, введите ещё команду
    regsvr32 msi.dll
  3. Закройте чёрное окно

Если пишет, что не хватает прав, то нужно запускать командную строку от имени Администратора.

Если команды выполнились, но не помогло, то скачайте файл и запустите msi_error.bat из архива, проверьте результат.

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

Также, многие программы используют .NET Framework, поэтому не будет лишним установить последнюю версию этого пакета. И, напоследок,  ещё один совет: если в пути к файлу-дистрибутиву есть хоть одна папка с пробелом в начале названия, то удалите пробел. Такой простой приём решит вашу проблему  🙂

Подведение итогов

Ошибки с установщиком Windows очень неприятные, их много и сразу непонятно куда копать. Одно ясно – система дала сбой и нужно восстанавливать её до рабочего состояния. Иногда ничего не помогает и приходится переустанавливать Windows. Однако не торопитесь это делать, попробуйте попросить помощи на этом форуме. В точности опишите вашу проблему, расскажите что вы уже делали, какие сообщения получили, и, возможно, вам помогут! Ведь мир не без добрых людей 🙂

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

Программа Windows Installer для Windows 7

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

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

Программа Windows Installer для Windows 7

Достаточно будет потратить несколько минут личного времени для того, чтобы исправить проблемы с установщиком программ операционной системы. Ничего сложного в установке не будет. Пользователю нужно будет воспользоваться классическим способом установки. Ничего не будет отличаться от установки любой другой утилиты. Важно указать только место, куда будет установлен установщик и его компоненты. После этого произойдет классическая установка через зеленую шкалу и остается кликнуть на клавишу «Готово». Ничего сложного в процессе установки Windows Installer просто нет.

  • Remove From My Forums
  • Question

  • I am Googling this ridiculously annoying issue from past two days. And yet I am not able to find any answer.

    I have VM with Windows Server 2008 R2 and I want to install SQL Server 2008 R2 express. The pre-requisite for SQL Server 2008r2 Exp is to have windows installer 5. And I can’t find it anywhere. Older versions of Windows Installers are not useful with this
    version.

    I found that there are so many posts about this issue and yet it seem to me that MSFT has not released WI 5 re-distributable packages.

    I really doubt that anyone here has answer for me but still I hope that someone from MSFT can reply me.

    Thanks,

    Jack

Answers

  • The solution to this problem for me was to use the Web Platform installer.  It magically installed Windows Installer 4.5 and SQL 2008 express.

    • Proposed as answer by

      Wednesday, October 19, 2011 4:58 PM

    • Marked as answer by
      Helen Zhou
      Thursday, October 20, 2011 8:02 AM

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

Какому администратору Windows не знакомы символы msi? Служба Windows Installer (программа msiexec.exe) и ее пакетный файл .msi — фактически стандартная технология для установки приложений Windows. Преимущества пакета установки приложений Windows Installer общеизвестны. Во-первых, при сбоях в процессе установки пакет .msi отменяет выполненный фрагмент установки и восстанавливает исходное состояние компьютера, тем самым предотвращая повреждения приложений и системы. Во-вторых, .msi-упакованное приложение обладает способностью к самовосстановлению, если пользователь удаляет один из его файлов. И наконец, Windows Installer обеспечивает установку программ на пользовательских компьютерах. Основные принципы работы Windows Installer широко известны, но более глубокое понимание внутренних механизмов Windows Installer и пакетов .msi позволит строить специализированные пакеты установки приложений и упростит диагностику сбоев в процессе развертывания. Ниже приводится обзор технологии Windows Installer, а затем речь пойдет о структуре пакетов .msi и их взаимодействии со службой Windows Installer.

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

Технология Windows Installer была разработана около четырех лет назад, а позднее стала базовым компонентом операционной системы Windows 2000 Server. Windows Installer 2.0 входит в состав Windows Server 2003 и Windows XP и поддерживает сборки Microsoft .NET (блок установки в .NET). Пользователи могут получить Windows Installer либо вместе с операционной системой Windows в качестве службы Windows Installer, либо в составе комплекта разработки программ (software development kit, SDK). Служба Windows Installer представляет собой механизм, который устанавливает пакеты Windows Installer (.msi-файлы). SDK содержит спецификации и API, определяющие формат и функцию .msi-файлов. Windows Installer SDK представляет собой составную часть Platform SDK. Его можно загрузить по адресу http://www.microsoft.com/msdownload/platformsdk/ sdkupdate/sdkinfo.htm. Разработчики и поставщики инструментов упаковки программ, такие как InstallShield Software, OnDemand Software и Wise Solutions (в настоящее время подразделение компании Altiris), применяют SDK для подготовки пакетов установки приложений. Программисты часто используют инструменты упаковки приложений, которые преобразуют старые процедуры установки в формат Windows Installer, чтобы скрыть от пользователей сложность технологии Windows Installer.

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

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

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


Экран 1. Функциональные блоки приложения, упакованного для Windows Installer

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

Функциональные блоки состоят из компонентов, которые представляют третий уровень иерархии .msi-файла. Компонент — это базовая единица пакета Windows Installer и строительный блок приложения. Компонент может быть файлом или группой файлов, параметром реестра, ярлыком или ресурсом (например, пиктограммой). С компонентом связан ключевой путь (key path). Ключевой путь определяет файл или параметр, без которого невозможна полная установка компонента. Ключевой путь — основа механизма самовосстановления пакетов на базе Windows Installer. При ремонте .msi-упакованного приложения служба Windows Installer проверяет полноту всех ключевых путей компонентов. Если ключевой путь какого-нибудь компонента отсутствует, служба Windows Installer определяет, какому функциональному блоку принадлежит компонент, и повторно устанавливает функциональный блок. Таким образом, время, необходимое для ремонта развернутого приложения, отчасти зависит от числа компонентов в пакете и числа компонентов в функциональном блоке, содержащем испорченный компонент.

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

Как отмечалось ранее, .msi-файл представляет собой набор инструкций по установке, организованных в таблицы. Windows Installer SDK определяет каждую таблицу и столбец. С помощью редактора баз данных Orca из Windows Installer SDK можно просматривать и редактировать содержимое .msi-файла. .msi-файл установки для Orca находится в подкаталоге in установочного каталога Platform SDK (например, c:program filesplatform sdkin). После установки Orca можно открыть любой .msi-файл. В левой панели интерфейса Orca представлен список таблиц файла. Выделив таблицу, в правой панели можно увидеть ее строки и столбцы.


Экран 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) определенных значений перед продолжением установки.

Таблица Property — еще одна важная часть базы данных .msi. Свойства представляют собой постоянные величины, задавая которые можно управлять ходом установки. В сущности, свойства есть переменные среды для .msi-файла. В пакетах Windows Installer часто используется свойство ALLUSERS, которое указывает процедуре установки, каким образом хранится информация о конфигурации приложения — для пользователя или для компьютера. Имена свойств чувствительны к регистру и их можно указывать в командной строке во время установки или используя трансформацию.

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

.msi-файл, полученный от поставщика, часто не располагает всем необходимым для развертывания пакета в конкретной среде. Например, потребитель может пожелать развернуть пакет автоматически с помощью инструмента развертывания программного обеспечения или установить только определенные функциональные блоки. В такой ситуации могут пригодиться трансформации. Трансформация — это специальный тип файла базы данных .msi, обычно имеющего расширение .mst. Трансформации применяются к процедуре развертывания приложения во время установки. В сущности, они изменяют выбираемые по умолчанию значения в пакете .msi, управляя процессом установки. Измененные значения в .msi-файле не сохраняются; они просто определяют, как будет протекать конкретная установка.

Файлы исправлений (patch file или .msp-файлы) отличаются от трансформаций. Как правило, поставщик выпускает файл исправлений, когда нужно модернизировать продукт, не прибегая к его глубокой переработке. Примером исправлений могут служить обновления для системы безопасности. После установки исправления в экземпляре .msi-файла, хранящемся в кэше рабочей станции, производятся постоянные изменения. Чтобы новые пользователи в будущем получали обновленные файлы, следует применить файлы исправлений к исходному пакету приложения.

Еще один вариант .msi-файла — модуль слияния (merge module, или .msm-файл), набор компонентов, многократно используемых при установке приложений. Например, в различных программах независимых поставщиков применяются компоненты Microsoft Data Access Components (MDAC). Вместо того чтобы воспроизводить установку общих компонентов в каждом новом .msi-пакете, авторы пакетов приложений могут задействовать модули слияния, предоставляемые поставщиками общих компонентов. Модули слияния — упрощенные файлы базы данных .msi, содержащие только общие функциональные блоки и компоненты для процедур установки приложений. Часто собственно компонентные файлы встраиваются в .msm-файл, что позволяет использовать модули слияния с разными пакетами. Затем .msm-файлы вставляются в основной пакет Windows Installer для данного приложения на этапе создания пакета.

При подготовке нового пакета установки файлы приложения можно вставить в .msi-файл. Как правило, файлы вставляются в виде встроенных файлов .cab, которые представляют собой сжатые наборы файлов, похожие на .zip-файлы. В .msi-файл удобно вставлять .cab-файлы не очень большого размера. Например, в Office имеются отдельные .msi- и .cab-файлы, так как размеры .cab-файлов Office достигают нескольких сотен мегабайт. Однако, упаковав все необходимые файлы малого приложения в .msi-файл, можно получить компактный файл, который удобно распространять среди пользователей. Извлечь встроенный .cab-файл из .msi-файла можно с помощью инструмента msidb.exe пакета Windows Installer SDK.

Служба Windows Installer

Пакеты Windows Installer и служба Windows Installer взаимозависимы: они не могут существовать друг без друга. Служба Installer по умолчанию устанавливается на всех компьютерах с версиями операционной системы, выпущенными после Windows 2000: редистрибутивную версию (автономную версию службы Installer и сопутствующие DLL) можно развернуть на компьютерах Windows NT Server 4.0 и Windows 9x. Служба Installer работает в контексте привилегированной пользовательской учетной записи LocalSystem. Чтобы запустить службу Windows Installer, нужно дважды щелкнуть на .msi-файле (например, в Windows Explorer); при запуске службы формируется новый процесс Installer (msiexec.exe) в контексте полномочий пользователя. После того как Windows Installer завершит установку приложения, служба Installer закрывается до следующего обращения к ней.

Служба Windows Installer обеспечивает набор функций, удобных для развертывания программ, особенно при использовании совместно с функцией Software Installation в Group Policy. Главная среди этих функций — повышение полномочий (privilege escalation). Когда обычный пользователь пытается установить приложение на своем компьютере, дважды щелкнув на .msi-файле, его полномочий для выполнения установки не всегда достаточно. Однако при развертывании приложения с помощью функции Software Installation групповой политики служба Windows Installer выполняет установку в своем контексте безопасности LocalSystem.

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

В рамках взаимозависимых отношений между Group Policy и службой Windows Installer реализованы объявления (advertisement). Как отмечалось ранее, при связывании программы с пользователем в Group Policy, в сущности, производится установка с объявлением. Таким образом, механизм Windows Installer обрабатывает сценарий объявления приложения (файл .aas), а не непосредственно .msi-файл. Файл .aas создается, когда для развертывания приложения используется Group Policy. Чтобы создать .aas-файл, редактор Group Policy Editor (GPE) вызывает функцию, экспортируемую из msi.dll (основная DLL, используемая msiexec.exe), которая генерирует уникальный сценарий объявлений внутри GPO. Таким образом, когда механизм Windows Installer обрабатывает сценарий объявлений, ему известно местонахождение соответствующего .msi-файла и части приложения, которые нужно объявить. Другими словами, процедура установки программ на базе GPO тесно связана со службой Windows Installer и наоборот.

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

Рассмотрим, что происходит на рабочей станции, когда служба Windows Installer устанавливает пакет .msi. Во-первых, чтобы обеспечить отмену действий в случае сбоя, Installer делает резервные копии всех замененных файлов, сохраняя их во временной папке на жестком диске пользователя, обычно C:config.msi. Заглянув в эту папку в ходе установки, можно увидеть в ней временные файлы с необычными именами, созданные службой Installer. После завершения установки служба Installer удаляет временные файлы.

Закончив установку, Windows Installer сохраняет экземпляр ассоциированного .msi-файла и любые трансформации, использовавшиеся Windows Installer при установке приложения, в папке %windir%installer, назначая файлам уникальные условные имена (например, 19fe9b79.msi). Файлы в %windir%installer в действительности представляют собой кэшированные копии всех .msi-файлов, обработанных службой Windows Installer на компьютере. Благодаря наличию кэшированных копий пользователь может изменить или удалить приложение, не обращаясь к оригинальному пакету установки, который может находиться на разделяемом диске сервера, недоступном мобильному пользователю. Windows отслеживает все развернутые приложения на базе .msi; имеющиеся функциональные блоки, компоненты и исправления, а также имя кэшированного .msi-файла в реестре.

Чтобы выяснить, какой .msi-файл с непонятным именем соответствует данному приложению на рабочей станции, следует перейти в раздел реестра HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows CurrentVersionInstallerUserData. Разделы упорядочены по SID имени пользователя; первой показана учетная запись LocalSystem, S-1-5-18, далее обычно перечисляются все приложения, установленные на компьютере. Список доступных пользователю программ приведен под соответствующим SID пользователя.

Запуск 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 из командной строки, чтобы произвести установку:

msiexec /I adminpak.msi ADDLOCAL=FeDNSConsole

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

В Windows Installer SDK имеются примеры, поясняющие использование сценариев Windows Script Host (WSH) для взаимодействия со службой Windows Installer и пакетами .msi. Объект WindowsInstaller.Installer располагает методами и свойствами, которые можно применять в сценариях для выполнения таких операций, как подготовка списка всех .msi-пакетов, имеющихся в системе, добавление .cab-файла в базу данных .msi, применение трансформации в ходе установки и сравнение двух .msi-файлов базы данных. Более подробную информацию о сценарных объектах Windows Installer можно получить, изучив сценарии примеров Installer SDK в папке http://msdn.microsoft.com/library/default.asp?url=/library/en-us/msi/setup/using_the_automation_interface.asp.

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

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


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

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


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

Тип таблицы последовательностей Описание
Admin Используется для административных установок приложений (с сервера)
Advertisement Используется для установки с объявлениями
Install Используется для интерактивных или автоматических установок на локальном компьютере — наиболее распространенный тип

Понравилась статья? Поделить с друзьями:
  • Windows installer redistributable для windows 10
  • Windows installer patchcache можно ли удалить
  • Windows installer msi windows 10 скачать
  • Windows installer latest version windows 7
  • Windows installer kb893803 v2 x86 что это такое