Was ist der Hauptunterschied zwischen MSI- und EXE-Installationsdateien?

13

Wir sehen sicherlich, dass einige .exeDateien ausgeführt werden müssen, aber was ist die unterschiedliche Funktionalität der MSI-Dateien?

Dhaiwat Budh
quelle
Sehen Sie sich die Antworten unten an oder lesen Sie auf serverfault.com die Unternehmensvorteile von msi. Dieser Artikel beschreibt im Detail, welche Vorteile MSI-Dateien
bieten

Antworten:

7

MSI ist eine Abkürzung für Microsoft Silent Installer und führt das EXE-Installationsprogramm im Hintergrund aus.

Es wird im Gruppenrichtlinienobjekt verwendet. Wenn Sie beispielsweise eine Anwendung auf einer von Ihnen verwalteten Windows-Infrastruktur bereitstellen möchten, müssen Sie mit der MSI eine neue Gruppenrichtlinienobjektregel erstellen. Die MSI wird auf jedem Computer installiert, ohne dass ein Benutzereingriff erforderlich ist.

Das Gruppenrichtlinienobjekt ist ein "Gruppenrichtlinienobjekt", das "die zentrale Verwaltung und Konfiguration von Betriebssystemen, Anwendungen und Benutzereinstellungen in einer Active Directory-Umgebung ermöglicht".

Clem
quelle
1
Das Gruppenrichtlinienobjekt ist ein "Gruppenrichtlinienobjekt", das "die zentrale Verwaltung und Konfiguration von Betriebssystemen, Anwendungen und Benutzereinstellungen in einer Active Directory-Umgebung ermöglicht".
RedGrittyBrick
5
... eher wie [M] icro [s] von [I] nstaller. Wo zum Teufel bist du "still" geworden? Nein, MSIs führen keine PE-Exes im Hintergrund aus (sie sind dazu in der Lage , aber das ist nicht ihre einzige oder sogar primäre Funktion).
Bob
3
The Windows Installer (previously known as Microsoft Installer) is a software component...- Wikipedia . Ja, MSI ist MicroSoft Installer und kein unbeaufsichtigtes Installationsprogramm.
Jet
3
Der größte Teil dieser Antwort ist tatsächlich falsch. Bitte lesen Sie die anderen Antworten in diesem Thread.
Stein Åsmul
Ich höre diese vollständige Form Microsoft Silent Installerzum ersten Mal. Ich wusste immer , dass MSI steht für M icro s oft ich nstaller`. Haben Sie ein offizielles Zitat, das dies sagt?
RBT
11

Was ist ein Installer? Nun, ein Installationsprogramm bereitet ein System so vor, dass ein Programm ausgeführt werden kann: Es installiert dieses Programm. Während dieses Vorgangs kann ein Installationsprogramm (unter Windows) Dateien an Systemspeicherorte kopieren, Verknüpfungen zum Starten platzieren, Bibliotheken aktualisieren, ältere Versionen entfernen usw. Es gibt keinen universellen Installationsstandard oder -format. Jedes Programm, das diese Aktionen ausführt (ein anderes Programm "installiert"), kann als Installationsprogramm bezeichnet werden.

Eine "exe" -Datei in Windows wird als " Portable Executable" -Datei bezeichnet und enthält beliebige Anweisungen, entweder nativen Maschinencode oder .NET-Bytecode. Es gibt nichts am PE-Format, das es als Installationsprogramm identifiziert. Natürlich können Sie mit beliebigem Maschinencode ein Installationsprogramm schreiben - und diese "exe" -Installationsprogramme, die Sie sehen, verfolgen diesen Ansatz.

Einige Leute schreiben ihre eigenen benutzerdefinierten Installationsprogramme. Andere verwenden Installationsgeneratoren, um Zeit und Mühe zu sparen. Dazu gehören NSIS, InnoSetup, InstallShield und mehr.

MSI ist ein bestimmtes Format, in dem Informationen zu einer Installation gespeichert werden, eine Datenbank mit den erforderlichen Schritten und den Dateien, die wo abgelegt werden sollen. An sich ist es nicht ausführbar; Es wird tatsächlich von msiexec.exeauf Windows-Systemen interpretiert . Dieser Interpreter folgt dann den in der MSI-Datei beschriebenen Schritten. Sie können theoretisch jede Exe erstellen, die eine Datenbank ähnlich wie MSI verwendet (und NSIS, InnoSetup usw. tun etwas Ähnliches).

Das Besondere an MSI ist, dass es in integrierten Tools enthalten ist und von diesen interpretiert wird. Außerdem ist es in Active Directory integriert, um die Bereitstellung auf vielen Computern in einer Unternehmensumgebung zu vereinfachen. Die Antwort von Clem behandelt dies ausführlicher.

Bob
quelle
6

MSI-Dateien sind Datenbankdateien (insbesondere MS-SQL-Datenbanken), die die Installation über Datenbanktabellen beschreiben und über einen komplexen Satz von Installationssequenzen installieren, die in der MSI-Datei selbst definiert sind.

MSI-Dateien werden nicht als EXE-Dateien im Hintergrund installiert, wie "Clem" schreibt. Sie werden von der Windows Installer Engine verwendet , auf die über die Befehlszeilenschnittstelle msiexec.exe zugegriffen werden kann . Oder probieren Sie die kommentierten msiexec.exe-Befehlszeilenbeispiele von Advanced Installer aus . Anschließend wird die Installation selbst über zwei verschiedene Sequenzen ausgeführt: die Benutzeroberflächensequenz und die tatsächliche Installationssequenz - letztere wird im Systemkontext unter Verwendung des LocalSystem-Kontos ausgeführt . Diese Anordnung ist erforderlich, um dem Installationsprogramm temporäre Administratorrechte oder erhöhte Rechte zu gewähren, was der richtige Begriff ist.

EXE-Installer können alles sein. In den meisten Fällen handelt es sich um skriptbasierte Installationsprogramme älteren Stils, die nicht auf Datenbanken basieren. Eine EXE-Datei kann jedoch auch ein Wrapper sein, der MSI-Dateien und zugehörige Laufzeitkomponenten enthält. Es kommt darauf an und muss im Einzelfall untersucht werden.

Stein Åsmul
quelle