Hvad er MSI-filformatet?
Filer med filtypenavnet .msi gemmer en applikationsinstallationspakke eller en driverpakke til Microsoft Windows. .msi-filer har en standardiseret struktur defineret af metadata og indeholder alle de ressourcer, der er nødvendige for at installere en applikation. Navnet MSI kommer fra Microsoft Installer, det oprindelige navn på teknologien, før Microsoft omdøbte den til Windows Installer.
MSI-pakkestruktur
.msi-pakker er relationelle databaser gemt i OLE2 Compound File Binary-formatet - den samme container, som bruges af ældre binære Office-dokumenter. På grund af denne delte container er de første otte magic bytes (D0 CF 11 E0 A1 B1 1A E1) ikke unikke for .msi; formatet kendetegnes ved dets interne databasestrømme såsom _Tables og _Columns. Hver pakke er opdelt i:
- Et eller flere produkter, der skal installeres
- Produktkomponenter - de atomare enheder i installationen (filer, registreringsdatabase-nøgler, genveje)
- Funktioner (Features) - større hierarkiske strukturer bestående af komponenter; brugere kan vælge valgfrie funktioner under opsætningen
- Nøglestier (Key paths) for komponenter - kritiske elementer, der verificeres under installation eller afinstallation af komponenter
Selvom et enkelt installationsprogram kan samle flere produkter, kan det ikke indbygget verificere afhængigheder på tværs af produkter. Styring af afhængigheder håndteres af afinstallationsværktøjer eller via den grafiske brugerflade. .msi er fortsat det dominerende installationsformat for virksomhedssoftware og ældre Windows-software.
Oprettelse og brug af Windows Installer-pakker
.msi-pakker oprettes med dedikerede værktøjer såsom WiX Toolset, Orca (inkluderet i Windows SDK til inspektion og redigering af databaser) eller kommercielle forfatterprodukter. Installationsprocessen styres af msiexec.exe og er opdelt i tre faser:
- Brugerflade - brugere konfigurerer installationsindstillinger
- Udførelse - den faktiske installation, der kører i enten *umiddelbar* eller *udskudt* (afventende) tilstand
- Rollback - hvis installationen mislykkes, rulles transaktionen tilbage, og ingen systemændringer bevares
Indholdet af en .msi-pakke kan udpakkes uden at køre installationsprogrammet ved hjælp af 7-Zip eller via msiexec /a (administrativ installation).
Versioner af Windows Installer
.msi-pakker debuterede med Office 2000 i 1999 (Windows Installer 1.0); runtime-miljøet var også indbygget i Windows 2000. Version 5.0 blev udgivet i 2009 sammen med Windows 7 og Windows Server 2008 R2. Nært beslægtede formater inkluderer .msp (patch-pakker, der leverer binære forskelle til installerede produkter) og .mst-transformationsfiler, der ændrer installationsprogrammets adfærd ved kørsel. Den nyere .msix-standard, introduceret i 2018, kombinerer .msi, .appx, App-V og ClickOnce-teknologier for forbedret sikkerhed, sandboxing og distribution via Store - men .msi bliver fortsat i vid udstrækning implementeret til virksomheds- og traditionel desktop-software. Payload-filer inde i en .msi er typisk komprimeret som .cab-strømme indlejret i databasen.
Sikkerhed og tryghed
RISIKO: MEDIUMEn MSI er et installationsprogram, der ser troværdigt ud, hvilket gør det til en yndet forklædning for malware: angribere sender trojanske MSI-filer (ofte med ondsindede Custom Actions, der kører kode under installationen) eller falske «softwareopdateringer». Installer kun MSI-filer fra den officielle leverandørs side, og foretræk signerede pakker - højreklik > Egenskaber > Digitale signaturer viser udgiveren; en usigneret MSI fra en ukendt kilde er et advarselstegn. Da MSI kører med installationsprivilegier, kan en ondsindet fil gøre alt, hvad en administrator kan. Tricket med omdøbning/7-Zip lader dig inspicere indholdet, før du kører det.
Formatdetaljer
kort fortaltD0 CF 11 E0 A1 B1 1A E1-signatur, der deles med gamle binære Office-dokumenter og Outlook .msg-filer. Den kan IKKE identificeres alene ud fra de første bytes; en MSI kendetegnes ved de interne installationsdatabaser-strømme, den indeholder (f.eks. tabeller, _Tables/_Columns-strømmen).
Programmer der åbner MSI-filer
msiexec /i pakke.msi /qn. For at afinstallere: msiexec /x pakke.msi. Tekniske detaljer
dyb specifikation| Container-format | OLE2 Compound File Binary (CFBF) - samme ydre struktur som ældre binære .doc- og .xls-Office-filer |
| Magic bytes (offset 0) | D0 CF 11 E0 A1 B1 1A E1 - OLE2-signatur delt med andre Compound Documents; ikke unik for MSI alene |
| MIME-type | application/x-msi |
| Interne databasetabeller | Relationelle tabeller med fast skema, herunder File, Registry, Component, Feature, Property og CustomAction |
| Payload-lagring | Filer komprimeret som Cabinet (.cab)-strømme indlejret i databasen eller refereret som eksterne .cab-arkiver |
| Komprimeringsalgoritmer | Cabinet-strømme bruger LZX- eller MSZIP-komprimering (zlib-kompatibel) |
| Transaktionsmodel | Fuld rollback ved fejl - alle fil- og registreringsændringer fortrydes via en shadow-copy script-mekanisme |
| Eksekveringsmotor | msiexec.exe (indbygget i Windows); installer: /i, fjern: /x {ProductCode}, reparer: /f, admin-udpakning: /a |
| Privilegiemodel | Understøtter installationstilstande pr. maskine (forhøjet, ALLUSERS=1) og pr. bruger (ikke-forhøjet) |
| Anonceret installation | COM-klasser og genveje kan annonceres - registreret, men ikke udrullet før første brug (demand-install) |
| Patch-understøttelse | .msp-patch-filer leverer binære forskelle og supplerende tabeldata målrettet en specifik MSI-produktkode |
| Transformations-understøttelse | .mst-transformationsfiler tilsidesætter egenskabsværdier og tabeldata ved installationstidspunktet uden at ændre den oprindelige .msi |
| Merge-moduler | .msm-merge-modulpakker indkapsler genanvendelige komponenter til inkludering i flere .msi-databaser |
| Custom actions | Logik før og efter installation kan udføre VBScript, JScript, DLL-indgangspunkter eller eksterne EXE-processer |
| Afinstallationsregistrering | Skriver automatisk HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{ProductCode}-poster |
| Runtime-versioner | Windows Installer 1.0 (1999) til 5.0 (2009, inkluderet i Windows 7 og Server 2008 R2) |
| Udgivet | 2000 (Windows Installer 1.0, shipped with Office 2000 / Windows 2000) |
| Specifikation | learn.microsoft.com |
MSI-konverteringer
Fællesskabets Q&A
spurgt af brugereIngen spørgsmål endnu - vær den første til at spørge om MSI-filer.
Ofte stillede spørgsmål
Hvordan åbner eller kører jeg en MSI-fil?
Kan jeg åbne en MSI-fil på en Mac eller Linux?
Hvad er forskellen på en MSI- og en EXE-installationsfil?
Hvordan installerer jeg en MSI lydløst / til mange computere?
msiexec /i pakke.msi /qn (stille, ingen brugerflade). Administratorer udruller MSI-filer i stor skala via Group Policy, SCCM eller Intune, ofte med en transformation (.mst) for at tilpasse indstillingerne.Hvordan afinstallerer jeg et program, der blev installeret fra en MSI?
msiexec /x pakke.msi. Da Windows Installer sporer pakken, er fjernelsen ren.