Vorhandene Setup-Programme als MSIX verpacken mit dem MSIX Packaging Tool

    MSIX-ÄnderungspaketMSIX ist Micro­softs neues Paket-Format für die Instal­lation von Software und soll künf­tig MSI, EXE-Setup und App-V ersetzen. Anwen­der müssen nicht darauf war­ten, dass Entwickler ihre Pro­gramme in diesem For­mat bereit­stellen. Viel­mehr lassen sich bestehende Installer mit dem MSIX Packaging Tool migrieren.

    Microsoft nennt eine ganze Reihe von Vorteilen von MSIX, die es zum Paket­format der Wahl machen soll. Dazu zählt, dass Anwendungen abgekapselt vom Betriebs­system in einem Container laufen. Dies soll die Quote der erfolgreichen Installationen erhöhen und ein rückstands­freies Entfernen gewähr­leisten.

    Packages für die Verteilung via Cloud

    Darüber hinaus wurde MSIX mit Blick auf die Distribution von Software über die Cloud entwickelt, also etwa für die Installation über App Stores. Wie bei UWP Apps erfolgt die Installation dabei pro User und orientiert sich somit insgesamt am Modell mobiler Geräte.

    Ausführen des MSIX-Installers nach der erfolgreichen Migration, in diesem Beispiel für Notepad++

    Um die Migration zu MSIX zu beschleunigen, überlässt es Microsoft nicht den Entwicklern alleine, die Software in diesem Format bereit­zustellen. Mit dem kostenlosen MSIX Packaging Tool können Anwender alle gängigen Setup-Pakete und sogar proprietäre Installations-Scripts konvertieren.

    Vorbereitungen für das Repackaging

    Bevor man loslegt, sollte man einige Voraus­setzungen klären. Dazu gehört vor allem, dass man für das Repackaging eine ähnliche Umgebung einrichtet wie jene, in der die Software später laufen soll.

    Dazu gehört, dass das Quellsystem die gleiche Prozessor­architektur aufweist wie die Zielrechner, also Intel versus ARM und 32- versus 64-Bit. Empfohlen wird eine möglichst frische Installation von Windows, weil das Packaging Tool ähnlich wie der Sequencer von App-V alle Änderungen am System erfasst, welches das alte Setup daran vornimmt.

    Zu diesem Zweck bietet Microsoft über die Schnellerstellung in Hyper-V eine virtuelle Maschine mit einer Eval-Version von Windows 10 an, welche auch schon die neueste Version des MSIX Packaging Tool enthält. Hat man für diesen Zweck jedoch selbst eine VM eingerichtet, dann kann man das Tool vom Microsoft Store installieren.

    Da es sich um eine Store App handelt und ihre Ausführung administrative Rechte erfordert, sollte man sich mit einem privilegierten Konto an Windows anmelden und das Tool in diesem Kontext installieren.

    Neues Paket erstellen

    Der Startbildschirm zeigt Symbole für ein neues Paket anlegen, ein bestehendes ändern und den Paket-Editor. Um einen her­kömmlichen Installer zu migrieren, klickt man auf Anwendungs­paket. Damit startet man einen Wizard, der durch den kompletten Vorgang führt.

    Startbildschirm des MSIX Packaging Tool

    Im ersten Schritt legt man fest, ob man das Paket auf dem lokalen, einem entfernten Rechner oder in einer virtuellen Maschine erstellt. In diesem Beispiel wählen wir die erste Option, die wohl auch die häufigste sein wird.

    Das Tool kann Packages lokal, auf einem entfernten Rechner oder in einer VM erstellen.

    Der zweite Dialog zeigt, ob der Computer für das Erfassen des Pakets vorbereitet ist. Beim ersten Aufruf installiert das Tool den benötigten Treiber und es deaktiviert vorübergehend Windows Update, um das System nicht während der Ausführung des Setup von dieser Seite zu modifizieren.

    Das MSIX Packaging Tool benötigt einen eigenen Treiber und deaktiviert Windows Update während der Installer-Migration.

    Anschließend öffnet man das herkömmliche Installations­paket und ergänzt bei Bedarf eventuell vorgesehene Argumente für die Kommandozeile. Diese kann das MSIX Packaging Tool in einem Template speichern, so dass man sie beim wiederholten Erfassen (etwa bei Updates) nicht wieder neu eingeben muss.

    Auswahl des herkömmlichen Installers und der Methode zum Signieren des Pakets

    Ein wichtiger Aspekt ist das Signieren von MSIX-Paketen, andernfalls lassen sie sich nicht ausführen. Die gängigste Variante wird hier das Signieren mit einem Zertifikat (.pfx) sein, das man in der Regel von einer externen Zertifizierungs­stelle erwirbt.

    Zertifikat für die Code-Signierung ausstellen

    Dient das Installations­paket ausschließlich dem internen Gebrauch, dann kann man ein Zertifikat für die Code-Signierung auf über eine Windows-CA ausstellen. Dazu startet man mmc.exe und fügt unter Datei das Snapin Zertifikate hinzu.

    Hier führt man dann im Kontext von Aktueller Benutzer aus dem Menü Aktionen den Befehl Alle Aufgaben => Neues Zertifikat anfordern aus. Dies startet einen Wizard, wo man im ersten Dialog die Zertifikat­registrierungs­richtlinie auswählt, in der Regel ist das jene für das Active Directory.

    Neues Zertifikat zur Signierung von Code anfordern

    Anschließend aktiviert man die Vorlage Codesignatur, öffnet dort die Details und klickt auf Eigenschaften. Im daraufhin angezeigten Dialog gibt man unter Antragsteller den Subject Name ein. Danach wechselt man zum Reiter Privater Schlüssel und hakt die Option Privaten Schlüssel exportierbar machen an.

    Vorlage Codesignatur auswählen und privaten Schlüssel exportierbar machen

    Nachdem man das neue Zertifikat exportiert hat, kann man es im MSIX Packaging Tool öffnen.

    Aufzeichnen des Installationsvorgangs

    Im nächsten Dialog gibt man Informationen für das Paket ein, darunter den Namen, die Version der Applikation oder den Installations­pfad. Klickt man hier auf weiter, dann startet das ursprüngliche Installations­routine (MSI, EXE, etc.) und das Packaging Tool zeichnet alle sein Aktionen auf.

    Das MSIX Packaging Tool startet das ursprüngliche Installationsprogramm und zeichnet alle seine Änderungen am OS auf.

    Dazu gehört das Erfassen sämtlicher entpackter Dateien, um sie in den MSIX-Container zu übernehmen. Außerdem erkennt es alle Schreibvorgänge in die Registry, so dass es diese Einträge in die virtuelle Registrier­datenbank innerhalb des Containers kopieren kann.

    Nach Abschluss dieser Phase zeigt das Tool im nächsten Dialog den Namen des installierten Programms an und sieht vor, dass man es von dort startet, um es zusätzlich anzupassen.

    Nach dem Abschluss der Installation kann man das Programm starten, um weitere Anpassungen vorzunehmen.

    Ändert man innerhalb der Software bestimmte Einstellungen, dann werden diese entweder in der Registry oder einer Konfigurations­datei gespeichert. Der Packager erkennt das und würde die Anpassungen in das Paket aufnehmen.

    Als letzten Punkt sieht der Wizard vor, dass man Windows-Services benennt, falls die Anwendung bestimmte davon benötigt und diese aktiviert werden sollen.

    Falls die eben installierte Software einen Windows-Service benötigt, dann würde das MSIX Tool diesen hier anzeigen.

    Zum Schluss gibt man den Pfad an, unter dem das MSIX gespeichert werden sollte und schließt den Vorgang mit einem Klick auf Erstellen ab.

    Zum Abschluss das MSIX-Package speichern

    Paket installieren

    Nun sollte das neue Paket bereit sein für die Installation. Unter Umständen muss man in älteren Versionen von Windows 10 dafür noch in der App Einstellungen unter Update und Sicherheit => Für Entwickler das Sideloading von Apps erlauben.

    Unter Umständen muss man noch das Sideloading von Apps erlauben.

    Für die Distribution von MSIX-Paketen sieht Microsoft nicht nur SCCM oder Intune vor, sondern auch den Store für Business oder eine selbst gehostete Website für den Download der Apps.

    3 Kommentare

    Karl Wester-Ebb... sagt:
    16. Juli 2020 - 12:15

    Soweit ich mich erinnern kann entfällt bei neueren Windows 10 Versionen die Aktivierung des Sideloading.

    Ist es auch möglich ein Codesigningzertifikat zu verteilen, ohne den privaten Schlüssel zu verteilen? Hier Verteilung von Zertifikaten und Auto Renewal?

    Bild von Wolfgang Sommergut
    16. Juli 2020 - 13:44

    > Soweit ich mich erinnern kann entfällt bei neueren
    > Windows 10 Versionen die Aktivierung des Sideloading.

    So ist es, habe ich im letzten Absatz erwähnt. Bei 1809 bekam ich noch die Meldung, dass Sideloading aktiviert werden muss.

    Für das Signieren braucht man eine .pfx-Datei, wobei man natürlich den Private Key durch ein starkes Passwort schützen sollte. Die Signatur bleibt gültig über das Ablaufdatum des Zertifikats hinaus, wenn man beim Signieren einen Timestamp-Server verwendet.

    Karl Wester-Ebb... sagt:
    16. Juli 2020 - 20:26

    Danke Wolfgang!