MSIX Pakete
Allgemeines
MSIX ist ein Paketformat für Windows Apps.
MSIX-Apps werden in einem App Container ausgeführt.
Sie erhalten eine virtuelle Registry + Virtuelles Dateisystem.
Werden unterhalb von C:\Program Files \WindowsApps\PackageName installiert.
Unterstützte Plattformen:
- Windows 10 Version 1709 und höher.
- Windows Server 2019 LTSC und höher.
- Windows Enterprise 2019 LTSC und höher.
Aufbau eines MSIX Pakets:
Siehe auch:
MSIX Packaging Tool
Zum erstellen und Editieren von MSIX Paketen veröffentlicht Microsoft das MSIX Packaging Tool
Damit kann man bestehende Installer (MSI,Exe,ClickOnce) aber wohl auch Skripte und Manuelle Installationen Paketieren.
Auch grafische Installer werden unterstützt.
Siehe auch:
Pakete können hierbei sowohl auf dem ausführenden Computer, einem Remote Computer oder einer lokalen Hyper-V VM erstellt werden.
Das Tool zeichnet alle Änderungen am System, die ein Installer vornimmt, auf und schnürrt daraus anschließend das MSIX Paket.
Erstellen eines Pakets
-
Auswahl «Create your app package»
-
Auswahl zwischen
- Create package on this computer
- Create package on a remote machine
- Create package on a local virtual machine
-
Prepare Computer
Beim ersten Paket installiert das Tool den “MSIX Packaging Tool Driver” dieser wird benötigt, um eine Installation aufzuzeichnen und zu paketieren. Das kann bis zu 30 Minuten dauern.
Zusätzlich kann man hier noch vorübergehend die Windows Suche deaktivieren, damit der Installer diese nicht mit aufzeichnet. -
Select installer
Hier wählt man den Installer der Anwendung aus, welchen man aufzeichnen und paketieren möchte. Bei manueller Installation lässt man das Leer.
Signing Preferences: siehe “Signieren eines Pakets” -
Package information
Hier gibt man nun die benötigten Paket Informationen ein. bei MSI Installer werden diese automatisch übernommen. -
Installation
Hier wird nun der angegebene Installer ausgeführt. Man klickt die Installation ganz normal durch, das Packaging tool überwacht im Hintergrund welche Dateien und Registry einträge sich ändern um daraus ein Paket zu bauen. Sobald man damit durch ist, klickt man auf Next, bekommt nochmal das Installierte Tool und anschließend auch erkannte Services aufgelistet und kann das Paket exportieren und Speichern.
Weitere Infos:
Signieren eines Pakets
Signieren ist ein erforderlicher Schritt für Windows Apps, damit diese auf allen Systemen installiert werden können
Signieren mithilfe eines Self-Signed Zertifikates
Ein self Signed Zertifikat für Digital Signaturen kann man mit diesem Powershell Script erstellen:
$YourPublisher = 'CN=automIT'
$FirenldyName = 'automIT Testing Certificate'
$password = 'test123' #Remember that one, you need it again when signing your MSI
$FolderToExportCert = 'C:\Users\michi\Desktop' #The folder already needs to exist
$CertName= 'automITSigningCert' #The Filename your Cert should have
$PFXName= ($FolderToExportCert +'\' +$CertName +'.pfx')
$cert = New-SelfSignedCertificate -Type Custom -Subject $YourPublisher -KeyUsage DigitalSignature -FriendlyName $FirenldyName -CertStoreLocation 'Cert:\CurrentUser\my'
$pwd = ConvertTo-SecureString -String $password -Force -AsPlainText
$cert | Export-PfxCertificate -FilePath $PFXName -Password $pwd
remove-item $cert.PSPath
Hierdurch erhält man eine .pfx Zertifikats Datei.
Das kann man nun beim erstellen eines Pakets zum signieren verwenden.
durch den CN im Zertifikat wird auch das Feld «Publisher» in den Paket Informationen festgelegt.
Importieren eines Self-signed Zertifikats
Um das Paket nun installieren zu können müssen wir unserem Self signed Zertifikat nurnoch vertrauen.
Doppelklick hierfür auf das .pfx Zertifikat
- «Local Machine» auswählen, Zertifikats-File ist bereits ausgewählt
- Passwort eingeben
- «Place all Certificates in the following store» anwählen und als Store «Trusted Root Certification Authorities» setzen
Weitere Infos:
- Signieren mit Self Signed Zertifikat und SignTool
- Signieren mit Device Guard-Signatur
- Nicht signierte Pakete für Tests
- Erstellen eins Self-Signed Zertifikats
Vorbereitungen für AVD
Erstellen Fileshare mit Azure AD Authentifizierung (Azure AD Kerberos)
Entpacken des MSIX in VHD Erstellen einer VHD
New-VHD -SizeBytes 40MB -Path c:\temp\automITNPP.vhd -Dynamic -Confirm:$false
$vhdObject = Mount-VHD c:\temp\automITNPP.vhd -Passthru
$disk = Initialize-Disk -Passthru -Number $vhdObject.Number
$partition = New-Partition -AssignDriveLetter -UseMaximumSize -DiskNumber $disk.Number
Format-Volume -FileSystem NTFS -Confirm:$false -DriveLetter $partition.DriveLetter -Force
Entpacken von MSIX mit msixmgr.exe in VHD siehe: https://learn.microsoft.com/de-de/azure/virtual-desktop/app-attach-image-prep https://learn.microsoft.com/de-de/azure/virtual-desktop/app-attach-msixmgr
Upload von VHD In storageaccount Fileshare
TODO: https://learn.microsoft.com/de-de/azure/virtual-desktop/app-attach-file-share Berechtigungen für VM in Gruppe