- Windows Installer
- Содержание
- История
- Логическая структура пакета
- Физическая структура пакета
- Процесс установки
- Действия
- Сбор информации
- Выполнение
- Откат
- Папка Windows Installer: назначение, содержимое, очистка
- Что за папка Installer в Windows?
- Как просмотреть содержимое каталога?
- Можно ли удалить каталог, если папка Installer в Windows занимает много места?
- Как почистить директорию средствами системы?
- Можно ли использовать для очистки каталога программы-чистильщики?
- Очистка папки утилитой PatchCleaner
- Перемещение каталога в другой логический раздел
- Какой методике отдать предпочтение?
- Ошибки при установке программ из пакета Windows Installer «.msi»
- Ошибки msi файлов
- Ещё способы решить проблему
- Ошибка установщика Windows
- Параметры реестра и службы
- Подведение итогов
Windows Installer
Windows Installer (установщик Windows) — подсистема Microsoft Windows, обеспечивающая установку программ (инсталлятор). Является компонентом Windows, начиная с Windows 2000; может доустанавливаться и на более ранние версии Windows. Вся необходимая для установки информация (иногда и вместе с устанавливаемыми файлами) содержится в установочных пакетах (installation packages), имеющих расширение .msi.
Содержание
История
Windows Installer был разработан в 1995—1998 годах и имел вначале кодовое название Darwin. Ранние версии назывались Microsoft Installer, отсюда стандартное расширение файла инсталляционного пакета — .msi. [1]
Первая версия Installer’а вышла в начале 1999 в качестве инсталлятора Microsoft Office 2000. В конце того же года Installer стал частью Windows 2000. Майкрософт всячески поощрял переход разработчиков на новый инсталлятор, включив в список требований к программам, желающим получить так называемый знак Windows 2000 Logo, требование устанавливаться с помощью Windows Installer.
Windows Installer оказался значительным шагом вперёд по отношению к предыдущему инсталлятору Microsoft — Setup API (ACME Setup): в нём были введены возможности GUI, поддержка деинсталляции и отката в любой момент установки (включая откат во время деинсталляции), корректная работа с правами доступа в Windows и другие возможности, что сделало его сильной альтернативой различным существовавшим на рынке инсталляционным пакетам.
Логическая структура пакета
Компонента (component) — минимальная неделимая установочная единица, представляющая собой группу файлов, значений реестра, создаваемых папок и других элементов, объединённых общим именем (именем компоненты) и либо устанавливаемых вместе, либо не устанавливаемых. Компоненты скрыты от конечного пользователя. Каждая компонента имеет ключевой путь (key path) — например, имя своего главного файла — по которому определяется наличие этой компоненты на компьютере пользователя.
Возможность (feature; в русифицированной версии Windows именно это слово переводится как «компонента», что вносит путаницу) — это иерархическая группа компонент и/или других возможностей. Когда при установке показывается диалог выбора устанавливаемых частей программы, пользователь управляет выбором именно возможностей. Выбор возможности для установки влечёт за собой установку всех компонент, которые в неё включены.
Физическая структура пакета
Файл .msi представляет собой составной документ OLE (OLE compound document — в том же формате-контейнере хранятся документы Microsoft Word, Excel и т. д.), в котором содержится небольшая реляционная база данных — набор из нескольких десятков взаимосвязанных таблиц, содержащих различную информацию о продукте и процессе установки. При этом все строковые данные в базе хранятся вместе в отдельном потоке документа, а в таблицах базы на них имеются ссылки; таким образом избегают дублирования строк, что значительно уменьшает размер базы.
Процесс установки
Процесс установки состоит из нескольких этапов — сбора информации, выполнения (собственно установки), а также, возможно, отката (в случае ошибки или отмены установки пользователем).
Действия
Каждый этап установки состоит из последовательности действий (actions), записанной в базе данных. Действиям присвоены номера, определяющие порядок их выполнения, а иногда — и условия, при которых действия выполняются или не выполняются.
Большая часть действий — это стандартные действия, характерные для типичного процесса сбора информации и установки. Все эти действия документированы. Кроме них, пользователь может определить и свои дейстия (custom actions).
Действия, определённые пользователем, могут быть либо написаны на одном из скриптовых языков, встроенных в операционную систему (VBScript), либо размещаться в специально созданной C, C++ и т. д.). Файлы с этими действиями помещаются внутрь файла .msi и извлекаются оттуда в начале запуска инсталляции.
Сбор информации
На этапе сбора информации Windows Installer собирает инструкции (либо путём взаимодействия с пользователем, либо программным путём) установить или удалить одну или несколько возможностей, входящих в продукт. Эти инструкции в дальнейшем формируют на основе базы данных внутренний сценарий, детально описывающий последующий этап выполнения.
Этот этап называют также непосредственным режимом (immediate mode).
Выполнение
К началу этого этапа инсталлятор генерирует внутренний сценарий, предназначенный для выполнения без вмешательства пользователя. Этот сценарий выполняется инсталлятором в привилегированном режиме службы NT (конкретно — под аккаунтом LocalSystem). Привилегированный режим требуется из-за того, что инсталляция могла быть запущена пользователем, не обладающим необходимыми правами для изменения системных параметров и файлов (хотя право установить программу ему было предоставлено).
Этот этап иногда называется отложенным режимом (deferred mode).
Откат
Если какое-либо из действий, определённых в сценарии, оканчивается неудачей, или установка в процессе отменяется пользователем, все действия, выполненные до этого места, откатываются, возвращая систему в состояние, бывшее до установки. Откат обеспечивается наличием для каждого действия, вносящего изменение в систему, обратного к нему. Вводя в пакет нестандартные действия, программист также должен создать обратные к ним для правильной работы отката.
Папка Windows Installer: назначение, содержимое, очистка
Как правило, рядовые пользователи на папку Windows Installer, скрытую в операционных системах от глаз обывателя, достаточно часто не обращают никакого внимания. Но так продолжается только до тех пор, пока место в системном разделе не уменьшается до катастрофического минимума, а нехватка свободного дискового пространства приводит к тому, что и сама ОС, и установленные в ней программы начинают работать некорректно или попросту тормозить и зависать. Вот тут приходит понимание того, что с этим каталогом нужно что-то делать, поскольку занимать он может уж очень много места (более 10 Гб). В обычном состоянии сразу после инсталляции операционной системы размер каталога обычно не превышает нескольких десятков мегабайт, но по мере установки все новых и новых программ, их дополнительных компонентов или даже обновлений системы его объем разрастается до неимоверных размеров. Вот тут пользователи начинают жаловаться, что папка Installer в Windows 7 занимает много места. Это, кстати, касается всех модификаций Windows. Но много места — это сколько? Известны случаи, когда размер этого каталога увеличивался до 70 Гб и более.
Что за папка Installer в Windows?
Понятно, что избавляться от этой директории нужно в любом случае. Но прежде чем принимать решение об ее удалении, следует разобраться, что это за каталог и какие данные в нем могут храниться. Вообще понять, что именно может находиться в этой директории, абсолютно несложно. Достаточно просто перевести название. Означает оно «Установщик Windows». В общем и целом название верное. Но на него нужно смотреть более широко.
Дело в том, что в этом каталоге находятся всевозможные инсталляторы и неустановленных обновлений самой операционной системы, и установленных приложений, для которых предусмотрена возможность обновления или включения в них дополнительных компонентов. Сами разработчики Windows без особой надобности трогать эту директорию если не запрещают, то точно не советуют, а то ведь некоторые программы или даже Windows в целом могут перестать работать.
Как просмотреть содержимое каталога?
Сам каталог является не только системным и скрытым, но еще и защищенным. Иными словами, в самом обычном «Проводнике» или любом другом файловом менеджере добраться до него не так уж и просто. Даже если использовать быстрое включение отображения скрытых элементов с главной панели «Проводника», как это предусмотрено в Windows 10, все равно пользователь его не увидит.
Чтобы получить к нему доступ, необходимо использовать меню вида и отметить на соответствующей вкладке не только пункт показа скрытых папок и файлов, но еще и системных защищенных объектов. Только после этого папка Windows Installer станет видна. После этого сразу же можно посмотреть, сколько места она занимает, используя для этого пункт свойств в меню ПКМ. Если объем не превышает пары гигабайт, по большому счету, очисткой можно и не заниматься. Но в случае выявления неоправданно большого объема нужно принимать срочные меры. Но не все так просто, как может показаться на первый взгляд.
Можно ли удалить каталог, если папка Installer в Windows занимает много места?
Как уже было сказано, данный каталог является защищенным, и просто так удалить его не получится (система не даст этого сделать). Некоторые «спецы» разрешают данную проблему по-своему, используя для разблокирования утилиту Unlocker. Что ж, это их дело. Но вот когда папка Windows Installer удалена, у них почему-то отказываются работать некоторые программы. В частности, это касается самого обычного офисного пакета. Для вызова отдельно взятых приложений, входящих в его состав, становится невозможно использовать ярлыки, не удается произвести установку дополнительных компонентов приложений и т.д. Впрочем, это касается и всей операционной системы, поскольку проблемы могут наблюдаться и с ней. Удалять объекты по одному в самом каталоге, надеясь на русское авось, тоже нельзя. Последствия будут теми же.
Как почистить директорию средствами системы?
Но как тогда очистить папку Windows Installer? В самом простом случае стоит воспользоваться стандартным инструментом очистки диска с выбором системного раздела с установленной ОС и очисткой системных файлов, где в списке следует отметить все пункты, включая и апдейты системы.
Вполне возможно, это и даст какой-то результат. Некоторые специалисты рекомендуют дополнительно удалить все контрольные точки восстановления, оставив по рекомендации системы только последнюю.
Увы, в большинстве случаев место на диске можно освободить лишь незначительно.
Можно ли использовать для очистки каталога программы-чистильщики?
Особой популярностью среди пользователей всех уровней подготовки пользуются специальные программы, предназначенные для очистки и оптимизации системы, вроде CCleaner, Advanced SystemCare и им подобные. Разочарование даже при углубленной очистке мусорных файлов или компонентов самой операционной системы наступает сразу же. На самом деле эффекта от применения таких приложений не наблюдается только потому, что папка Windows Installer как защищенный системный объект такими утилитами попросту игнорируется. Но что же тогда можно предпринять?
Очистка папки утилитой PatchCleaner
Как оказывается, такой инструмент есть. Если папка Installer в Windows 10 занимает много места (равно как и в других модификациях системы), почистить ее содержимое можно при помощи небольшой утилиты под названием PatchCleaner, которая является абсолютно бесплатной, правда, не имеет русскоязычного интерфейса. Чтобы использовать ее соответствующим образом, отображение описываемого скрытого каталога должно быть включено изначально, а сама программа предлагает использовать установить по умолчанию специальную папку, в которую могут быть перемещены ненужные объекты в виде бэкапов.
Просмотреть файлы можно через нажатие ссылки показа деталей (Details…). Но удалять используемые файлы не стоит (Files still used). Лучше ограничиться только теми, которые помечены как Orphaned. Однако при критически большом объеме папки можно выбрать ненужные, хотя и используемые патчи.
Также в настройках можно активировать обычное или углубленное сканирование. Как правило, рядовому пользователю ни о чем больше беспокоиться не нужно, а вот тем, кто хочет использовать более тонкую настройку, можно поэкспериментировать и, например, исключить удаление патчей для отдельно взятых приложений.
Перемещение каталога в другой логический раздел
Наконец, удалять вручную или чистить папку Windows Installer совершенно необязательно. Достаточно переместить ее в другой логический раздел, в котором больше свободного места. Для этого нужно просто скопировать каталог в нужное место обычным способом, затем удалить исходную директорию, вызвать от имени администратора командную консоль и задать на выполнение команду mklink /j «c:\windows\installer» «литера_раздела:\каталог\подкаталог\Installer». В качестве каталогов можно использовать любой из существующих или создать нужные директории самостоятельно перед выполнением команды.
Какой методике отдать предпочтение?
Остается выбрать оптимальное решение по поводу выполняемых действий. Как, по всей видимости, уже многие догадались, каталог лучше всего переместить в другое место или воспользоваться безопасной очисткой с помощью специализированной программы для удаления патчей. А вот производить ручное удаление и папки, и ее содержимого не рекомендуется ни под каким надуманным предлогом, поскольку потом никакое восстановление системы не поможет, не говоря уже о том, что многие приложения станут абсолютно неработоспособными, равно как и установка апдейтов или дополнений операционной системы и нужных пользователю программ.
Ошибки при установке программ из пакета Windows Installer «.msi»
Довольно распространённая проблема среди пользователей операционной системы 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 «имя файла» verify that the file exists and that you can access it» (Error 1305). Переводится «Ошибка чтения из файла … проверьте существует ли файл и имеете ли вы к нему доступ». Ну не тупняк ли? Естественно, что кнопка «Повторить» не помогает, а отмена прекращает всю установку. Сообщение особой смысловой нагрузки также не несёт, т.к. файл точно существует и я имею к нему доступ, иначе бы просто не смог его запустить и получить это сообщение, к тому же почему-то на английском языке 🙂
А ошибка в том, что не Я должен иметь доступ к файлу, а установщик Windows, точнее сама Система. Решается очень просто:
- Кликаем правой кнопкой по файлу с расширением .msi, выбираем «Свойства»
- На вкладке «Безопасность» смотрим, есть ли в списке пользователь с именем «система» или «System»
- Скорее всего вы такого не увидите. Поэтому будем добавлять вручную. Нажимаем кнопку «Изменить…», затем «Добавить…»
- В поле пишем «система» или «System» (если у вас английская Windows) и нажимаем «Проверить имена». При этом слово должно стать подчёркнутым как на картинке.
- Нажимаем «ОК», ставим галочку «Полный доступ», «ОК»
- Кнопка «Дополнительно» -> «Изменить разрешения…» ставим «Добавить разрешения, наследуемые от родительских объектов», «ОК» три раза.
Теперь ошибка установщика не появится! Можно добавить доступ на всю папку, из которой вы обычно инсталлируете программы, например на папку «Downloads», как у меня. Смотрим видео по решению проблем с правами доступа:
В Windows XP вкладки «Безопасность» не будет, если включён простой общий доступ к файлам. Чтобы его выключить, нужно зайти в «Пуск -> Панель управления -> Свойства папки -> Вид» и выключить опцию «Использовать простой общий доступ к файлам». В урезанных версиях Windows 7/10 и XP вкладки «Безопасность» нет в принципе. Чтобы её увидеть, нужно загрузить Windows в безопасном режиме и зайти в неё под администратором.
Ещё способы решить проблему
- Запускайте установку, войдя в систему под администраторским аккаунтом
- Правой кнопкой по пакету «.msi» и выбираем «Запуск от имени Администратора»
- Выключите антивирус на время
- Включить режим совместимости с предыдущими операционными системами. Для этого зайдите в свойства файла msi и на вкладке «Совместимость» поставьте галочку «Запустить программу в режиме совместимости»
- Если файл на флешке, то попробуйте скопировать его куда-нибудь на жёсткий диск и запустить оттуда (бывает, что запрещена установка программ со съёмных накопителей)
- Попробуйте просто создать новую папку с любым именем в корне диска, перекинуть туда дистрибутив и запустить его оттуда
Описанный метод поможет при разных сообщениях, с разными номерами. Например, вы можете видеть такие ошибки файлов msi:
- Error 1723
- Internal Error 2203
- Системная ошибка 2147287035
- Ошибка «Невозможно открыть этот установочный пакет»
- Ошибка 1603: Во время установки произошла неустранимая ошибка
Во всех этих случаях должна помочь установка прав на файл и/или на некоторые системные папки. Проверьте, имеет ли доступ «система» к папке временных файлов (вы можете получать ошибку «Системе не удается открыть указанное устройство или файл»). Для этого:
- Сначала узнаем нужные пути. Нажмите «Win + Pause» и зайдите в «Дополнительные параметры системы -> Вкладка «Дополнительно» -> кнопка «Переменные среды»»
- В списках ищем переменные с названиями «TEMP» и «TMP» (значения обычно совпадают), в них записаны пути к временным папкам, которые использует установщик Windows
- Теперь идём к этим папкам и смотрим в их свойствах, имеет ли к ним доступ «система». Чтобы быстро получить путь к временной папке пользователя, кликните два раза по переменной, скопируйте путь и вставьте его в адресной строке «Проводника» Windows
После нажатия «Enter» путь преобразится на «нормальный» и вы переместитесь в реальную временную папку. Права на неё и надо проверять. Также рекомендую очистить временные папки от всего что там скопилось или даже лучше удалить их и создать новые с такими же названиями. Если не получается удалить папку, почитайте как удалить неудаляемое, но это не обязательно.
Если служба Windows Installer всё равно не хочет работать, то проверьте права на папку «C:\Config.Msi», сюда «система» также должна иметь полный доступ. В этом случае вы могли наблюдать ошибку «Error 1310». На всякий случай убедитесь, что к папке КУДА вы инсталлируете софт также есть все права.
Если вы используете шифрование папок, то отключите его для указанных мной папок. Дело в том, что хотя мы сами имеем к ним доступ, служба Microsoft Installer не может до них достучаться пока они зашифрованы.
Ещё ошибка может быть связана с битым файлом. Может быть он не полностью скачался или оказался битым уже на сервере. Попробуйте скачать его ещё раз оттуда же или лучше с другого места.
Ошибка установщика Windows
В случае общих проблем не будут устанавливаться никакие msi файлы, процесс установки, скорее всего, даже не начнётся. При этом могут появляться ошибки вида:
- Нет доступа к службе установщика Windows
- Не удалось получить доступ к службе установщика Windows
- Ошибка пакета установщика Windows (1719)
или ещё нечто подобное со словами «ошибка msi», «Windows Installer Error». Всё это означает, что система дала сбой и теперь её надо лечить. Может вы ставили какой-то софт, который испортил системные файлы и реестр, или подхватили вирус. Конечно, никогда не будет лишним удалить вирусы, или убедиться что их нет. Но оставьте этот вариант на потом, т.к. обычно проблема кроется в другом.
Сначала давайте проверим работает ли служба Windows Installer:
- Нажмите «Win + R» и введите services.msc
- Найдите в конце списка службу «Установщик Windows» или «Windows Installer»
- Тип запуска должен быть «Вручную». Если она «Отключена», то зайдите в «Свойства» и выберите «Вручную»
- Затем кликните по ней правой кнопкой и выберите «Запустить» или «Перезапустить». Если ошибок нет и состояние переходит в режим «Работает», то здесь всё нормально.
- Нажмите «Win + R» и введите msiexec. Если модуль MSI работает нормально, то должно появиться окно с версией установщика и параметрами запуска, а не ошибка.
Следующее что я посоветую сделать – это выполнить команду сканирования системы на повреждённые и изменённые системные файлы. Нажмите «Win + R» и введите
Sfc /scannow
Произойдёт поиск и замена испорченных файлов на оригинальные, при этом может потребоваться вставить установочный диск с Windows XP-7-10. После окончания процесса перегрузитесь и посмотрите, решена ли проблема.
Microsoft сам предлагает утилиту, призванную решить нашу проблему. Запустите программу Easy Fix и следуйте мастеру.
Параметры реестра и службы
Следующий способ устранения ошибки – восстановление рабочих параметров в реестре установщика Windows Installer.
Для этого скачайте архив и запустите оттуда два reg-файла, соответственно своей версии Windows. Согласитесь с импортом настроек.
В Windows XP или Windows Server 2000 установите последнюю версию установщика 4.5.
Если не помогло, то проделайте ещё перерегистрацию компонентов:
- Нажмите «Win + R» и введите «cmd». Затем в чёрном окне введите последовательно команды:
MSIExec /unregister
MSIExec /regserver - В ответ должна быть пустота, никаких ошибок. Если проблема не решена, введите ещё команду
regsvr32 msi.dll - Закройте чёрное окно
Если пишет, что не хватает прав, то нужно запускать командную строку от имени Администратора.
Если команды выполнились, но не помогло, то скачайте файл и запустите msi_error.bat из архива, проверьте результат.
Последний вариант — скачайте программу Kerish Doctor, почитайте мою статью, там есть функция исправления работы службы установщика и многих других частых проблем Windows.
Также, многие программы используют .NET Framework, поэтому не будет лишним установить последнюю версию этого пакета. И, напоследок, ещё один совет: если в пути к файлу-дистрибутиву есть хоть одна папка с пробелом в начале названия, то удалите пробел. Такой простой приём решит вашу проблему 🙂
Подведение итогов
Ошибки с установщиком Windows очень неприятные, их много и сразу непонятно куда копать. Одно ясно – система дала сбой и нужно восстанавливать её до рабочего состояния. Иногда ничего не помогает и приходится переустанавливать Windows. Однако не торопитесь это делать, попробуйте попросить помощи на этом форуме. В точности опишите вашу проблему, расскажите что вы уже делали, какие сообщения получили, и, возможно, вам помогут! Ведь мир не без добрых людей 🙂