MSIX soll langfristig auch klassische Anwendungen Modernisieren und diese zu den neuen, modernen Verteilungsverfahren (AppX) in Windows 10 und Server 2016 kompatibel integrieren.
Die ersten Anfänge sehen wir jetzt. Mit Windwos 10 1809 gibt es ein Tool im Microsoft Store, mit dem man recht einfach eigene MSIX Pakete erstellen kann. Dieser Blog soll eine schnelle Übersicht zu den Möglichkeiten diesen Tools bieten. Dabei geht dieser Artikel nicht sonderlich in die Tiefe. Und ganz wichtig: schraubt Eure Erwartungen nicht zu hoch. Vieles Anwendungen funktionieren noch nicht als MSIX Paket. Wir haben aktuell eine Erfolgsrate von vielleicht 30% (ohne Nacharbeiten zu müssen).
Wer tiefer einstegen möchte - alle wichtigen Dokumente sind bei Microsoft unter der folgenden Adresse zu finden: http://aka.ms/MSIX
Das MSIX Packaging Tool ist quasi so eine Art Sequencer aber diesmal nicht für App-V, sondern für MSIX Pakete. Vorhandene App-V Pakete können damit aber auch direkt nach MSIX konvertiert werden. Weiterhin ist es möglich aus Installationsquellen (msi, Setup.exe etc.) über eine vorher- nachher Aufzeichnung (Snapshots) wie im App-V Sequencer neue MSIX Pakete zu erstellen. MSIX und das MSIX Packaging Tool sind ab Windows 10 Buld 17701 nutzbar (1809) mit einem kleinen PowerShell Oneliner kann schnell geprüft werden, ob Dein System geeignet ist:
if([System.Environment]::OSVersion.Version.build -ge 17701) {write-Host ready for msix build}
Download und Installation des MSIX Packaging Tools
Das MSIX Packaging wird über den Microsoft Store installiert:
https://www.microsoft.com/de-de/p/msix-packaging-tool/9n5lw3jbcxkf?activetab=pivot:overviewtab
Benutzeroberfläche und Commandline
Das MSIX Packaging Tool hat eine Commandline aber auch eine grafische Benutzeroberfläche. Die Commandline kommt insbesondere für die Paketierungsautomation zum Einsatz.
MSIX-Verpackungstool , Version 1.2019.110.0
Mit dem MSIX-Verpackungstool können Sie vorhandene win32-Anwendungen im MSIX-Format erneut packen.
Usage: MsixPackagingTool.exe [options] [command]
Options:
- ? | -- help Zeigen Sie Hilfeinformationen an.
-- version Zeigen Sie Versionsinformationen an.
Commands:
cleanup Löscht die temporären Dateien und Artefakte des Tools.
create-package Erstellt ein MSIX-Paket über das Befehlszeilen-Installationsprogramm einer Anwendung.
Examples:
MsixPackagingTool.exe create-package --template "C:\Users\Default\Desktop\ConversionTemplate.xml"
MsixPackagingTool.exe cleanup
In der GUI wird unterschieden zwischen:
- Anwendungspaket (ein MSIX Paket)
- Änderungspaket - vergleichbar mit einem MSP
- Dem Paketeditor – vergleichbar mit dem App-V Sequencer zur Bearbeitung der Registrierung des Dateisystems im Paket
Signieren der MSIX Pakete mit einem Zertifikat
MSIX Pakete benötigen ein Zertifikat. Das kann entweder ein gekauftes sein (Commono hat recht günstige) oder ein Zertifikat aus der eigenen Unternehmens CA. AM einfachsten ist es jedoch ein Self-Signing Zertifikat zu nutzen. Das kann wie folgt mit PowerShell erstellt werden. Das PowerShell löscht dieses Zertifikat anschließend aus dem eigenen Store (My) und legt eine Kopie auf dem Desktop an (Nutzung auf eigene Gefahr!). Der Export erfolgt als kennwortgeschütztes „Pfx“. Der Packaging Tool macht diesen Zertifikattype so erforderlich, da ein Kennwort verlangt wird. In diesem Fall ist das Kennwort „mypass“.
$Newcert = New-SelfSignedCertificate -Subject 'CN=NICKIT' -KeyAlgorithm RSA -KeyLength 2048 -KeyUsage DigitalSignature -Type CodeSigningCert -CertStoreLocation Cert:\CurrentUser\My
$trumbprint = $Newcert.Thumbprint
$cert = (Get-ChildItem -Path cert:\CurrentUser\My\$trumbprint)
if($cert -ne $null){
$Secure_String_Pwd = ConvertTo-SecureString "mypass" -AsPlainText -Force
Export-PfxCertificate -Cert $cert -FilePath $env:USERPROFILE\desktop\NewSelfSigningCert.pfx -Password $Secure_String_Pwd
Remove-Item cert:\CurrentUser\My\$trumbprint
}
Nach dem Export muss das Zertifikat unter den „Vertrauenswürdigen Zertifikaten“ des Computers importiert werden, damit das System dem Zertifikat vertraut. Dazu eine MMC als Administrator starten und das Snap In „Zertifikate“ für das Computerkonto hinzufügen. Solche Zertifikate lassen sich übrigens auch Systemweit über Gruppenrichtlinien verteilen. Dort das Zertifikat, welches auf dem Desktop liegt sollte wieder importieren (mypass):
Installation von MSIX Paketen
Damit ein MSIX Paket installiert werden kann, muss das Windows System unter Configuration/Updates/For Developers in den “Sideload Apps” Modus versetzt werden. Dazu ist u.a. eine Anmeldung als Administrator notwendig.
Nun bin ich selber kein Admin auf meinem System. Daher mache ich das über eine Gruppenrichtlinie.
Auf einem english System ist das:
Local Computer Policy | Computer Configuration | Administrative Templates | Windows Components | App Package Deployment.
Deutsch:
Lokale Richtlinie | Computerconfiguration | Administrative Vorlagen | Windows-Komponenten | Bereitstellen von App-Paketen
Einstellung: „Bereitstellung aller vertrauenswürdigen Apps zulassen“ auf Aktiviert.
Funktion der Einstellung:
Mit dieser Richtlinieneinstellung können Sie die Installation vertrauenswürdiger Windows Store-Branchen-Apps oder vom Entwickler signierter Windows Store-Apps verwalten. Wenn Sie diese Richtlinieneinstellung aktivieren, können Sie alle Windows Store-Branchen-Apps oder vom Entwickler signierten Windows Store-Apps installieren. (Diese müssen mit einer Zertifikatkette signiert sein, die vom lokalen Computer erfolgreich überprüft werden kann.) Wenn Sie diese Richtlinieneinstellung deaktivieren oder nicht konfigurieren, können Sie keine Windows Store-Branchen-Apps oder vom Entwickler signierten Windows Store-Apps installieren.
Sideload apps sind damit aktiv:
Die erste Anwendung
Als Beispiel konvertiere ich ein Einfaches App-V Paket für die Anwendung PUTTY
1. Das MSIX Packaging Tool starten
2. Euer App-V Paket unter „Durchsuchen“ auswählen. Hier geht auch ein MSI Paket o.ä. das wird jedoch auch zu der Installation dieses Paketes führen. Ich will konverteiren. Daher wähle ich hier Putty.appv
3. Als Zertifikat unser „NewSelfSignedCert“ oder ein eigenes Code Signed Zertifikat wählen
4. „mypass“ als Kennwort eintragen
5. Weiter durchklicken und einen Ort zum Speichern auswählen
Optional kann hier auch der Editor gestartet werden. Dieser bietet die Möglichkeit, Berechtigungen zu konfigurieren und ähnlich wie im APP-V Sequencer das Paket zu bearbeiten.
Nach dem Erstellen erscheint die folgende Meldung
Die Erstellung ist abgeschlossen
Installation des MSIX Pakets
Das Paket kann jetzt durch einen Doppelklick installiert werden
Möglich ist u.a. aber auch die Nutzung von PowerShell für die Installation
Add-AppXPackage Putty.msix
Mit der PowerShell kann auch der Installationsstatus abgefragt werden:
Name : Putty
Publisher : CN=NICKIT
Architecture : X64
ResourceId :
Version : 0.0.1.0
PackageFullName : Putty_0.0.1.0_x64__7w3d6zkmm54f8
InstallLocation : C:\Program Files\WindowsApps\Putty_0.0.1.0_x64__7w3d6zkmm54f8
IsFramework : False
PackageFamilyName : Putty_7w3d6zkmm54f8
PublisherId : 7w3d6zkmm54f8
IsResourcePackage : False
IsBundle : False
IsDevelopmentMode : False
NonRemovable : False
IsPartiallyStaged : False
SignatureKind : Developer
Status : Ok
Die Installation und Deinstallation kann mit Benutzerrechten erfolgen. Mit PowerShell ist das
Get-AppXPackage Putty | Remove-AppXPackage
Um das alles für Euch zu beschleunigen hier als Download ein Archiv mit dem Zertifikat und mit Putty als MSIX. Ihr könnt damit beginnen das Zertifikat zu importieren.