Как я могу ускорить установку и удаление пакета MSI?

14

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

Почему это так, и что я могу сделать, чтобы ускорить процесс ?

Штейн Осмул
источник
1
Что вы знаете, меня сразу же убили за попытку дать некоторые практические и технические советы от мира развертывания до мира системного администрирования. Советы в этой теме на момент написания статьи логичны и технически обоснованы. Конструктивная критика приветствуется.
Штейн Осмул
Вы написали статью о некоторых аспектах технологии MSI. Это круто, наверное. Мне, как системному администратору, никогда не требовалось решать проблему «У меня слишком медленная установка программного обеспечения».
mfinni
Это обновленный ответ на вопрос, который я видел несколько раз на этом сайте и на других сайтах обмена стека.
Штейн Осмул
3
@mfinni - это не значит, что это не по теме. На этом сайте я вижу множество проблем, с которыми я не сталкиваюсь.
Марк Хендерсон
Он спрашивал, почему за него проголосовали без комментариев. Я не голосовал, но дал ответ, который видел в качестве возможной причины.
mfinni

Ответы:

15

Краткое резюме

  • Свойства скоростных свойств для настройки:
    • MSIFASTINSTALL (попробуйте, может быть3или7)
    • FASTOEM (подумайте дважды, должны прочитать документацию)
    • DISABLEROLLBACK (понять, что это значит, может привести к сбою пользовательских действий в пакете MSI! Это зависит от дизайна MSI - ищите пользовательские действия для фиксации и отката )
  • Программное обеспечение безопасности может быть приостановлено для ускорения установки.
    • Попробуйте отключить во время установки - просканируйте ваш установщик на virustotal.com .
  • Попробуйте запустить из административного образа ( альтернативная информация ) (не требуется извлекать файл).
    • Запуск из локального административного образа будет самым быстрым.
    • Сеть с высокой задержкой может замедлить установку, если вы используете сетевой административный образ?
      • Потенциально высокие накладные расходы на файл (небольшие файлы).
      • Загрузка одной CAB может быть быстрее (проверка на вирусы может занять много времени здесь)?
  • Восстановление системы может быть отключено глобально на машине (не только через MSIFASTINSTALL).

Исходная информация

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

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

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


Техническая информация


ОБНОВЛЕНИЕ (Feb.2018): Вы можете установить свойство с именем FASTOEM в очень особых обстоятельствах (см. Связанный контент), чтобы ускорить развертывание. Я никогда не пробовал это, но это стоит прочитать. Я сомневаюсь, что вам удастся использовать его эффективно, но, возможно, стоит попробовать.


Самое последнее обновление установщика Windows на момент написания, установщик Windows 5 (доступно для Windows Server 2012, Windows 8, Windows Server 2008 R2 или Windows 7), содержит новое свойство MSIFASTINSTALL, которое можно использовать для ускорения установки большой пакет MSI . См. Ссылку выше для правильных значений. Я бы предложил 3 для точки восстановления без , а только FileCosting (процесс определения требований к месту на диске). Или 7, чтобы также уменьшить частоту сообщений о прогрессе.

Обычная « оценка затрат » включает в себя множество сравнений и вычислений между компонентами, дисками и реестром, а также вычислений между тем, что существует в системе, и тем, что устанавливается. По моему мнению, большая часть этого редко необходима (на клиентских ПК дискового пространства обычно достаточно - и обратно в реальность 2018 года с меньшим SD-диском проблема пространства могла бы всплыть…), но, очевидно, безопаснее позволить калькуляция пробега.

msiexec.exe / I "D: \ winzip112.msi" / QN MSIFASTINSTALL = 3

Также можно установить свойство DISABLEROLLBACK, чтобы отключить поддержку отката в установщике MSI. Я настоятельно рекомендую не использовать это, если вы не ставите новый компьютер. Это особый случай, когда вы можете просто начать все сначала, если что-то не получается. Для реального использования компьютера я бы не рекомендовал включать это свойство.

Ирония заключается в том, что отключение отката ускорит работу, если вы используете огромный пакет обновлений, который заменяет множество файлов, или любую большую деинсталляцию (поскольку деинсталляция переместит все удаленные файлы в область отката). Это может быть довольно значительным, но небезопасным. Вы просто устанавливаете это свойство в командной строке: msiexec.exe / I "D: \ winzip112.msi" / QN MSIFASTINSTALL = 3 DISABLEROLLBACK = 1

Административная установка

И, наконец, как упоминалось выше в справочной информации, запустите административную установку файла MSI, чтобы извлечь файлы, чтобы извлечение не происходило локально на каждом компьютере. Это предполагает, что вы находитесь в довольно быстрой сети, и копирование файла происходит без особых задержек. Я предполагаю, что беспроводная сеть с высокой задержкой может замедлить работу с извлечением небольших файлов, которые нужно копировать по одному. Вы запускаете установку с правами администратора, просто передавая / a в установочный файл:

setup.exe / a

или

msiexec / a "D: \ winzip112.msi"

Затем вам нужно следовать инструкциям и выбрать место извлечения файлов. См superuser.com для потока обсуждения этой функции.


Некоторые ссылки :

Скорость:

Штейн Осмул
источник
не так MSIFASTINSTALLли? без ERхвоста.
n611x007
Я добавил свойство MSIFASTINSTALL = 3 в мой проект Wix. Тем не менее, нет разницы во времени установки. <Property Id = "MSIFASTINSTALL" Value = "3" /> Я сделал что-то не так?
Катир Субраманиам
1
Это в основном улучшает время запуска MSI - создание точки восстановления системы может быть медленным. Это также помогает вычислить требования к пространству, но сама установка не намного быстрее. Подожди, пока я найду другой ответ, на который я мог бы отправить тебя.
Штейн Осмул
Как вы увидите: никакой серебряной пули, но некоторые хитрости вы можете сделать. Насколько велика ваша установка?
Стейн Осмул