Мы, конечно, видим, что некоторые из файлов .exe
должны быть выполнены, но какова различная функциональность файлов MSI?
3 ответа
Что такое установщик? Что ж, установщик подготавливает систему к запуску программы: он устанавливает эту программу. Во время этого процесса установщик (в Windows) может копировать файлы в системные расположения, размещать ярлыки для его запуска, обновлять библиотеки, удалять старые версии и т.д. Не существует универсального установщика стандарта или формата; любая программа, которая выполняет эти действия ("устанавливает" другую программу), может называться установщиком.
Файл "exe" в Windows известен как файл Portable Executable и содержит произвольные инструкции, либо машинный код, либо байт-код .NET. В формате PE нет ничего, что идентифицировало бы его как установщик. Конечно, с произвольным машинным кодом вы можете написать установщик - и те установщики "exe", которые вы видите, используют этот подход.
Некоторые люди пишут свои собственные установщики. Другие используют генераторы установщика, чтобы сэкономить время и силы; к ним относятся NSIS, InnoSetup, InstallShield и другие.
MSI - это особый формат, используемый для хранения информации об установке, базы данных о том, какие шаги предпринять и какие файлы поместить в какое место. Сам по себе он не является исполняемым; на самом деле он интерпретируется msiexec.exe
в системах Windows. Этот интерпретатор будет затем выполнять шаги, изложенные в файле MSI. Теоретически вы можете создать любой exe-файл, который использует базу данных, аналогичную MSI (а NSIS, InnoSetup и т.д. Делают что-то подобное).
Что делает MSI особенным, так это то, что он включен и интерпретируется встроенными инструментами, а также интегрирован в Active Directory для более удобного развертывания на многих машинах в корпоративной среде, и ответ Клема охватывает это более подробно.
Файлы MSI - это файлы базы данных (в частности, базы данных MS-SQL), которые описывают установку с помощью таблиц базы данных и устанавливают с помощью сложного набора последовательностей установки, определенных в самом файле MSI.
MSI-файлы не устанавливаются в виде EXE-файлов в фоновом режиме, как пишет "Clem" - они используются механизмом установщика Windows , доступным через интерфейс командной строки msiexec.exe. Или, возможно, попробуйте аннотированные примеры командной строки msiexec.exe от Advanced Installer. Затем сама установка выполняется в двух разных последовательностях: последовательность пользовательского интерфейса и фактическая последовательность установки - последняя выполняется в системном контексте с использованием учетной записи LocalSystem. Эта договоренность необходима, чтобы разрешить установщику временные права администратора или повышенные права, что является подходящим термином.
Установщики EXE могут быть чем угодно. Чаще всего это установщики на основе сценариев более старого стиля, которые не основаны на базах данных, но EXE-файл также может быть оболочкой, содержащей файлы MSI и связанные компоненты времени выполнения. Все зависит и должно быть исследовано в каждом конкретном случае.
MSI является аббревиатурой от Microsoft Silent Installer, он запускает установщик .exe в фоновом режиме.
Он используется в GPO, например, если вы хотите развернуть приложение в инфраструктуре Windows, которой вы управляете, вам нужно создать новое правило GPO с MSI, и MSI будет установлен на каждом компьютере без вмешательства пользователя.
GPO - это "объект групповой политики", который «обеспечивает централизованное управление и настройку операционных систем, приложений и пользовательских настроек в среде Active Directory».