MSIX-Massenkonvertierungsskripts

Die Massenkonvertierungsskripts im MSIX Toolkit können verwendet werden, um die Konvertierung von Windows-Apps in das MSIX-Paketformat zu automatisieren. Die Liste der Apps und deren Details finden Sie im Entry.ps1-Skript .

Vorbereiten von Computern für die Konvertierung

Bevor Sie das Massenkonvertierungsskript des MSIX Toolkit ausführen, müssen Sie die Konvertierung Ihrer Anwendung in das MSIX-Verpackungsformat automatisieren, die Geräte, die Sie verwenden (virtuell oder remote), so konfiguriert werden, dass die Remotekommunikation zugelassen wird und das MSIX Packaging Tool installiert ist.

Begriff Beschreibung
Hostcomputer Dies ist das Gerät, das die Massenkonvertierungsskripts ausführt.
Virtueller Computer Dies ist ein Gerät, das in Hyper-V vorhanden ist, das auf dem Hostcomputer gehostet wird.
Remotecomputer Dies ist ein physischer oder virtueller Computer, auf den über das Netzwerk zugegriffen werden kann.

Hostcomputer

Der Hostcomputer muss die folgenden Anforderungen erfüllen:

  • MSIX Packaging Tool muss installiert sein.
  • Wenn virtuelle Computer verwendet werden, muss Hyper-V installiert sein.
  • Wenn Remotecomputer verwendet werden:
    • Das Gerät ist in derselben Do Standard wie die Remotecomputer vorhanden:
      • Aktivieren von PowerShell-Remoting
        # Enables PowerShell Remoting
        Enable-PSRemoting -force
        
    • Das Gerät ist in einer Arbeitsgruppe oder in einer alternativen Do Standard als Remotecomputer vorhanden:
      • Aktivieren von PowerShell-Remoting
      • WinRM Trusted Host muss den Gerätenamen oder die IP-Adresse des Remotecomputers enthalten.
        # Enables PowerShell Remoting
        Enable-PSRemoting -force
        Set-Item WSMan:\localhost\Client\TrustedHosts -Value <RemoteMachineName>,[<RemoteMachineName>,...]
        

Remotecomputer

Der Remotecomputer muss die folgenden Anforderungen erfüllen:

  • MSIX Packaging Tool muss installiert sein.

  • Wenn das Gerät in derselben Vorgehensweise vorhanden ist Standard wie der Hostcomputer:

    • Aktivieren von PowerShell-Remoting
    • WinRM muss aktiviert sein
    • ICMPv4 über die Clientfirewall zulassen
      # Enables PowerShell Remoting
      Enable-PSRemoting -force
      New-NetFirewallRule -DisplayName “ICMPv4” -Direction Inbound -Action Allow -Protocol icmpv4 -Enabled True
      
  • Wenn das Gerät in einer Arbeitsgruppe oder einer alternativen Vorgehensweise vorhanden ist Standard als Hostcomputer:

    • Aktivieren von PowerShell-Remoting
    • WinRM Trusted Host muss den Gerätenamen oder die IP-Adresse des Hostcomputers enthalten.
    • ICMPv4 über die Clientfirewall zulassen
      # Enables PowerShell Remoting
      Enable-PSRemoting -force
      New-NetFirewallRule -DisplayName “ICMPv4” -Direction Inbound -Action Allow -Protocol icmpv4 -Enabled True
      Set-Item WSMan:\localhost\Client\TrustedHosts -Value <HostMachineName>
      
      

Virtueller Computer

Es wird empfohlen, das Hyper-V-Schnellerstellungsimage "MSIX Packaging Tools Environment" zu verwenden, da es vorkonfiguriert ist, um alle Anforderungen zu erfüllen. Der virtuelle Computer muss auf dem Hostcomputer gehostet und in Microsoft Hyper-V ausgeführt werden.

Der virtuelle Computer muss die folgenden Anforderungen erfüllen:

Syntax

entry.ps1

BESCHREIBUNG

Dies ist eine Reihe von PowerShell-Skripts, die die Möglichkeit zum Massenpaketieren von Anwendungen im MSIX-Paketformat bieten. Diese Skripts stellen eine Verbindung mit einem lokalen virtuellen Computer oder Remotecomputer her, der zum Packen der einzelnen Anwendungen verwendet wird.

Apps, die in das MSIX-Anwendungsformat verpackt werden, werden in der Reihenfolge konvertiert, in der sie in das Entry.ps1-Skript eingegeben wurden. Remotecomputer, die im Entry.ps1-Skript aufgeführt sind, werden verwendet, um die Anwendungen im MSIX-Format zu packen, wird einzeln verwendet. Virtuelle Computer können mehrmals verwendet werden, um verschiedene Anwendungen im MSIX-Anwendungsformat zu verpacken.

Bevor Sie das Skript ausführen, müssen Sie zuerst die Apps hinzufügen, die Sie in die conversionsParameters Variable im Skript konvertieren möchten. Der Variablen können mehrere Apps hinzugefügt werden. Das Skript nutzt die App und remote/virtuelle Computer, um eine XML-Datei zu erstellen, die den Anforderungen des MSIX Packaging Tool (MsixPackagingTool.exe) entspricht. Nach dem Erstellen der XML-Datei wird das Skript run_job.ps1 in einem neuen PowerShell-Prozess ausgeführt, der MsixPackagingTool.exe auf dem Zielgerät ausführt, um die App zu konvertieren und im Ordner ".\Out " im Skriptausführungsordner zu platzieren.

Beispiel

PS C:\> entry.ps1

Im Beispiel "entry.ps1" wird das Skript "entry.ps1 " ausgeführt. Dieses Skript konvertiert die in der conversionsParameters Variablen angegebenen Apps in MSIX-Pakete. Die Apps werden mit den virtuellen Computern oder Remotecomputern konvertiert, die in den Variablen "virtualMachines " und "remoteMachines " angegeben sind.

Parameter

virtualMachines

Der virtualMachines Parameter ist ein Array, das den Namen und die Anmeldeinformationen der virtuellen Computer enthält, mit denen beim Verpacken einer App im MSIX-Format eine Verbindung hergestellt und darauf zugegriffen werden kann.

  • Typ: Array
  • Erforderlich: Nein
$virtualMachines = @(
    @{
        Name = "MSIX Packaging Tool Environment";   # Name of the virtual machine as listed in the Hyper-V Management console
        Credential = $credential                    # Credentials used to connect/login to the virtual machine.
    }
)

Der angegebene virtuelle Computer wird verwendet, um Apps im MSIX-Format zu verpacken. Dieser virtuelle Computer wird mit den bei der Aufforderung eingegebenen Anmeldeinformationen verbunden (Aufforderung wird direkt nach der Ausführung des Skripteintrags.ps1 angezeigt). Vor dem Packen einer Anwendung in das MSIX-Paketformat erstellt das Skript eine Momentaufnahme der Hyper-V-VM und stellt diese Momentaufnahme wieder her, nachdem die Anwendung gepackt wurde.

remoteMachines

Der remoteMachines Parameter ist ein Array, das den Namen und die Anmeldeinformationen der Remotecomputer enthält, mit denen beim Verpacken einer App im MSIX-Format eine Verbindung hergestellt und darauf zugegriffen werden kann. Die angegebenen Remotecomputer sind Einweggeräte, die zum Packen einer einzelnen Anwendung verwendet werden.

Remotecomputer müssen im Netzwerk zugänglich und auffindbar sein.

  • Typ: Array
  • Erforderlich: Nein
$remoteMachines = @(
    @{
        ComputerName = "Computer.Domain.com";   # The fully qualified name of the remote machine.
        Credential = $credential }              # Credentials used to connect/login to the remote machine.
)

Der angegebene Remotecomputer wird verwendet, um eine einzelne App im MSIX-Format zu verpacken. Dieser Remotecomputer wird mit den bei der Aufforderung eingegebenen Anmeldeinformationen verbunden (Aufforderung wird direkt nach der Skripteingabe.ps1-Ausführung angezeigt).

Stellen Sie sicher, dass der vollqualifizierte Do Standard Name oder extern zugängliche Alias des Geräts vor der Ausführung des Entry.ps1-Skripts aufgelöst werden kann.

signingCertificate

Der signingCertificate Parameter ist ein Array, das Informationen zum Codesignaturzertifikat enthält, das zum Signieren der verpackten Anwendung verwendet wird. Dieses Zertifikat muss über eine Verschlüsselungsstufe von mindestens SHA256 verfügen.

  • Typ: Array
  • Erforderlich: Nein
$SigningCertificate = @{
    Password = "Password"; 
    Path = "C:\Temp\ContosoLab.pfx"
}

conversionsParameters

Der conversionsParameters Parameter ist ein Array, das Informationen zu den Apps enthält, die Sie in das MSIX-Format konvertieren möchten. Jede App im Array wird einzeln analysiert und die MSIX-Paketkonvertierung auf einem Remotecomputer oder virtuellen Computer ausgeführt. Die Apps werden in der Reihenfolge konvertiert, in der sie im Skript angezeigt werden. Wenn die Konvertierung in das MSIX-Format fehlschlägt, versucht das Skript nicht erneut, die Anwendung auf einem anderen Remotecomputer oder virtuellen Computer zu konvertieren.

  • Typ: Array
  • Erforderlich: Ja
$conversionsParameters = @(
    ## Use for MSI applications:
    @{
        InstallerPath = "C:\Path\To\YourInstaller.msi";    # Full path to the installation media (local or remote paths).
        PackageName = "YourApp";                           # Application Display Name - name visible in the start menu.
        PackageDisplayName = "Your App";                   # Application Name - Can not contain special characters.
        PublisherName = "CN=YourCompany";                  # Certificate Publisher information - must match signing certificate
        PublisherDisplayName = "YourCompany";              # Application Publisher name
        PackageVersion = "1.0.0.0"                         # MSIX Application version (must contain 4 octets).
    },
    ## Use for EXE or other applications:
    @{
        InstallerPath = "Path\To\YourInstaller.exe";       # Full path to the installation media (local or remote paths).
        PackageName = "YourApp";                           # Application Display Name - name visible in the start menu.
        PackageDisplayName = "Your App";                   # Application Name - Can not contain special characters.
        PublisherName = "CN=YourCompany";                  # Certificate Publisher information - must match signing certificate
        PublisherDisplayName = "YourCompany";              # Application Publisher name
        PackageVersion = "1.0.0.0";                        # MSIX Application version (must contain 4 octets).
        InstallerArguments = "/SilentInstallerArguement"   # Arguements required by the installer to provide a silent installation of the application.
    },
    ## Creating the Packaged app and Template file in a specific folder path:
    @{
        InstallerPath = "Path\To\YourInstaller.exe";       # Full path to the installation media (local or remote paths).
        PackageName = "YourApp";                           # Application Display Name - name visible in the start menu.
        PackageDisplayName = "Your App";                   # Application Name - Can not contain special characters.
        PublisherName = "CN=YourCompany";                  # Certificate Publisher information - must match signing certificate
        PublisherDisplayName = "YourCompany";              # Application Publisher name
        PackageVersion = "1.0.0.0";                        # MSIX Application version (must contain 4 octets).
        InstallerArguments = "/SilentInstallerArguement";  # Arguements required by the installer to provide a silent installation of the application.
        SavePackagePath = "Custom\folder\Path";            # Specifies a custom folder path where the MSIX app will be created.
        SaveTemplatePath = "Custom\folder\Path"            # Specifies a custom folder path where the MSIX Template XML will be created.
    }
)

Die in der conversionsParameters Variablen bereitgestellten App-Informationen werden verwendet, um eine XML-Datei mit allen erforderlichen Anwendungsdetails zu generieren. Nach dem Erstellen der XML-Datei übergibt das Skript dann die XML-Datei an das MSIX Packaging Tool (MsixPackagingTool.exe), um verpackt zu werden.

Protokollierung

Das Skript generiert eine Protokolldatei, in der beschrieben wird, was während der gesamten Skriptausführung transpiriert wurde. Die Protokolldatei enthält Details zur Verpackung von Anwendungen im MSIX-Verpackungsformat sowie Informationen zum Skriptverlauf. Die Protokolle können von jedem Beliebigen Texthilfsprogramm gelesen werden, wurden jedoch mit dem Trace32-Protokollleser zum Lesen konfiguriert. Fehler in der Skriptausführung werden als Rot und Warnungen als gelb hervorgehoben. Weitere Informationen zum Trace 32 Log Reader finden Sie unter CMTrace.

Die Protokolldatei wird im Verzeichnis .\logs\BulkConversion.logdes Skripts erstellt.