Scripts de conversion en bloc MSIXMSIX Bulk conversion scripts

Les scripts de conversion en bloc de la boîte à outils MSIX peuvent être utilisés pour automatiser la conversion des applications Windows au format de package MSIX.The Bulk conversion scripts in the MSIX Toolkit can be used to automate the conversion of Windows apps to the MSIX package format. La liste des applications et leurs détails sont fournis dans le script entry.ps1 .The list of apps and their details are provided in the entry.ps1 script.

Préparer les machines pour la conversionPrepare machines for conversion

Avant d’exécuter le script de conversion en bloc de MSIX Toolkit, pour automatiser la conversion de votre application au format d’empaquetage MSIX, les appareils que vous allez utiliser (virtuel ou distant) doivent être configurés pour autoriser la communication à distance et l’outil d’empaquetage MSIX est installé.Prior to running the MSIX Toolkit's Bulk Conversion script, to automate the conversion of your application to the MSIX packaging format the devices that you will be using (virtual, or remote) must be configured to allow remote communication, and have the MSIX Packaging Tool installed.

TermeTerm DescriptionDescription
Ordinateur hôteHost Machine Il s’agit de l’appareil exécutant les scripts de conversion en bloc.This is the device executing the Bulk Conversion scripts.
Machine virtuelleVirtual Machine Il s’agit d’un appareil existant dans Hyper-V, hébergé sur l’ordinateur hôte.This is a device existing in Hyper-V, hosted on the Host Machine.
Ordinateur distantRemote Machine Il s’agit d’une machine physique ou virtuelle accessible sur le réseau.This is a physical or virtual machine accessible over the network.

Ordinateur hôteHost Machine

L’ordinateur hôte doit remplir les conditions suivantes :The Host Machine must meet the following requirements:

  • L' outil d’empaquetage MSIX doit être installé.MSIX Packaging Tool must be installed.
  • Si des machines virtuelles sont utilisées, Hyper-V doit être installé.If Virtual Machines are being used, Hyper-V must be installed.
  • Si des ordinateurs distants sont utilisés :If Remote Machines are being used:
    • L’appareil existe dans le même domaine que le ou les ordinateurs distants :Device exists in the same Domain as the Remote Machine(s):
      • Activer la communication à distance de PowerShellEnable PowerShell Remoting
        # Enables PowerShell Remoting
        Enable-PSRemoting -force
        
    • L’appareil existe dans un groupe de travail ou dans un autre domaine que le ou les ordinateurs distants :Device exists in a Workgroup or to an alternate Domain as the Remote Machine(s):
      • Activer la communication à distance de PowerShellEnable PowerShell remoting
      • L’hôte approuvé WinRM doit contenir le nom de l’appareil ou l’adresse IP de l’ordinateur distantWinRM Trusted Host must contain the device name or IP address of the Remote Machine
        # Enables PowerShell Remoting
        Enable-PSRemoting -force
        Set-Item WSMan:\localhost\Client\TrustedHosts -Value <RemoteMachineName>,[<RemoteMachineName>,...]
        

Ordinateur distantRemote Machine

L’ordinateur distant doit remplir les conditions suivantes :The Remote Machine must meet the following requirements:

  • L' outil d’empaquetage MSIX doit être installé.MSIX Packaging Tool must be installed.

  • Si l’appareil existe dans le même domaine que l’ordinateur hôte :If the device exists within the same domain as the Host Machine:

    • Activer la communication à distance de PowerShellEnable PowerShell Remoting
    • WinRM doit être activéWinRM must be enabled
    • Autoriser ICMPv4 via le pare-feu clientAllow ICMPv4 through client firewall
      # Enables PowerShell Remoting
      Enable-PSRemoting -force
      New-NetFirewallRule -DisplayName “ICMPv4” -Direction Inbound -Action Allow -Protocol icmpv4 -Enabled True
      
  • Si l’appareil existe dans un groupe de travail ou un autre domaine que l’ordinateur hôte :If the device exists within a workgroup or an alternate domain as the Host Machine:

    • Activer la communication à distance de PowerShellEnable PowerShell Remoting
    • L’hôte approuvé WinRM doit contenir le nom de l’appareil ou l’adresse IP de l’ordinateur hôteWinRM Trusted Host must contain the device name or the IP address of the Host Machine
    • Autoriser ICMPv4 via le pare-feu clientAllow ICMPv4 through client firewall
      # 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>
      
      

Machine virtuelleVirtual Machine

Il est recommandé d’utiliser l’image de création rapide Hyper-V « MSIX Packaging Tools Environment », car elle est préconfigurée pour répondre à toutes les exigences.It is recommended that the Hyper-V Quick Create "MSIX Packaging Tools Environment" image be used, as it is pre-configured to meet all requirements. L’ordinateur virtuel doit être hébergé sur l’ordinateur hôte et s’exécuter dans Microsoft Hyper-V.The virtual machine must be hosted on the Host Machine and running within Microsoft Hyper-V.

L’ordinateur virtuel doit remplir les conditions suivantes :The Virtual Machine must meet the following requirements:

SyntaxeSyntax

entry.ps1

DescriptionDescription

Il s’agit d’un ensemble de scripts PowerShell qui permettent d’empaqueter des applications en bloc dans le format de package MSIX.This is a set of PowerShell scripts that provides the ability to bulk package applications into the MSIX package format. Ces scripts se connectent à une machine virtuelle locale ou à un ordinateur distant qui sera utilisé pour empaqueter chaque application.These scripts will connect to a local virtual machine or remote machine which will be used to package each application.

Les applications qui sont empaquetées dans le format d’application MSIX seront converties dans l’ordre dans lequel elles ont été entrées dans le script entry.ps1 .Apps being packaged into the MSIX application format will be converted in the order they were entered in the entry.ps1 script. Les ordinateurs distants figurant dans le script entry.ps1 sont utilisés pour empaqueter les applications dans le format MSIX, qui sera utilisé au singulier.Remote machines listed in the entry.ps1 script will be used to package the applications into the MSIX format will be singularly used. Les machines virtuelles peuvent être utilisées plusieurs fois pour empaqueter des applications différentes dans le format d’application MSIX.Virtual machines can be used multiple times to package different applications into the MSIX application format.

Avant d’exécuter le script, vous devez d’abord ajouter les applications que vous souhaitez convertir à la conversionsParameters variable dans le script.Before running the script, you must first add the apps you want to convert to the conversionsParameters variable in the script. Plusieurs applications peuvent être ajoutées à la variable.Multiple apps can be added to the variable. Le script utilise l’application et les machines virtuelles/distantes pour créer un fichier XML mis en forme pour répondre aux exigences de l' outil d’empaquetage MSIX (MsixPackagingTool.exe).The script leverages the app and remote/virtual machines to create a XML file formatted to meet the requirements of the MSIX Packaging Tool (MsixPackagingTool.exe). Après avoir créé le fichier XML, le script run_job.ps1 est exécuté dans un nouveau processus PowerShell qui exécute MsixPackagingTool.exe sur le périphérique cible pour convertir l’application et la placer dans le dossier .\Out situé dans le dossier d’exécution du script.After creating the XML file, the run_job.ps1 script is executed in a new PowerShell process which executes MsixPackagingTool.exe on the target device to convert the app and place it in the .\Out folder located in the script execution folder.

ExempleExample

PS C:\> entry.ps1

Cet exemple exécute le script entry.ps1 .Ths example executes the entry.ps1 script. Ce script convertit les applications spécifiées dans la conversionsParameters variable en packages MSIX.This script converts the apps specified in the conversionsParameters variable into MSIX packages. Les applications sont converties à l’aide des machines virtuelles ou des ordinateurs distants indiqués dans les variables virtualMachines et remoteMachines .The apps are converted using the virtual machines or remote machines indicated in the virtualMachines and remoteMachines variables.

ParamètresParameters

virtualMachinesvirtualMachines

Le virtualMachines paramètre est un tableau qui contient le nom et les informations d’identification des ordinateurs virtuels auxquels se connecter, ainsi que l’accès au moment de l’empaquetage d’une application dans le format MSIX.The virtualMachines parameter is an array that contains the name and credentials of the virtual machines to connect to and access when packaging an app into the MSIX format.

  • Tapez : EnsembleType: Array
  • Obligatoire : nonRequired: No
$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.
    }
)

L’ordinateur virtuel spécifié sera utilisé pour empaqueter les applications au format MSIX.The specified virtual machine will be used to package apps into the MSIX format. Cette machine virtuelle sera connectée à à l’aide des informations d’identification entrées lorsque vous y êtes invité (l’invite s’affiche directement après l’exécution du script entry.ps1 ).This virtual machine will be connected to using the credentials entered when prompted (prompt appears directly after script entry.ps1 execution). Avant d’empaqueter une application dans le format d’empaquetage MSIX, le script crée un instantané de la machine virtuelle Hyper-V, puis le restaure dans cet instantané une fois que l’application a été empaquetée.Prior to packaging an application to the MSIX packaging format, the script will create a snapshot of the Hyper-V VM, and then restored to this snapshot after application has been packaged.

remoteMachinesremoteMachines

Le remoteMachines paramètre est un tableau qui contient le nom et les informations d’identification des ordinateurs distants auxquels se connecter, ainsi que l’accès au moment de l’empaquetage d’une application dans le format MSIX.The remoteMachines parameter is an array that contains the name and credentials of the remote machines to connect to and access when packaging an app into the MSIX format. Les ordinateurs distants spécifiés seront des appareils à usage unique utilisés pour empaqueter une application unique.The remote machines specified will be single-use devices used to package a single application.

Les ordinateurs distants doivent être accessibles et détectables sur le réseau.Remote machines must be accessible and discoverable on the network.

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

L’ordinateur distant spécifié sera utilisé pour empaqueter une application unique au format MSIX.The specified remote machine will be used to package a single app into the MSIX format. Cette machine distante est connectée à à l’aide des informations d’identification entrées à l’invite (l’invite s’affiche directement après l’exécution du script entry.ps1 ).This remote machine will be connected to using the credentials entered when prompted (prompt appears directly after script entry.ps1 execution).

Assurez-vous que le nom de domaine complet ou l’alias externe de l’appareil peut être résolu avant l’exécution du script de entry.ps1 .Ensure that the fully qualified domain name or externally facing alias of the device is resolvable prior to execution of the entry.ps1 script.

signingCertificatesigningCertificate

Le signingCertificate paramètre est un tableau qui contient des informations relatives au certificat de signature de code qui sera utilisé pour signer l’application empaquetée MSIX.The signingCertificate parameter is an array that contains information related to the code signing certificate that will be used to sign the MSIX packaged application. Ce certificat doit avoir un niveau de chiffrement au minimum SHA256.This certificate must have an encryption level of at minimum SHA256.

  • Tapez : EnsembleType: Array
  • Obligatoire : nonRequired: No
$SigningCertificate = @{
    Password = "Password"; 
    Path = "C:\Temp\ContosoLab.pfx"
}

conversionsParametersconversionsParameters

Le conversionsParameters paramètre est un tableau qui contient des informations sur les applications que vous souhaitez convertir au format MSIX.The conversionsParameters parameter is an array that contains information about the apps you want to convert to MSIX format. Chaque application du tableau sera analysée individuellement et exécutée via la conversion du package MSIX sur un ordinateur distant ou un ordinateur virtuel.Each app in the array will be parsed individually and run through the MSIX package conversion on either a remote machine or virtual machine. Les applications seront converties dans l’ordre dans lequel elles apparaissent dans le script.The apps will be converted in the order that they appear in the script. Si la conversion au format MSIX échoue, le script ne tente pas à nouveau de convertir l’application sur un ordinateur distant ou une machine virtuelle différent.If the conversion to MSIX format fails, the script will not re-attempt to convert the application on a different remote machine or virtual machine.

  • Tapez : EnsembleType: Array
  • Obligatoire : OuiRequired: Yes
$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.
    }
)

Les informations de l’application fournies dans la conversionsParameters variable sont utilisées pour générer un fichier XML avec tous les détails d’application requis.The app information provided in the conversionsParameters variable will be used to generate an XML file with all of the required application details. Après avoir créé le fichier XML, le script transmet le fichier XML à l' outil d’empaquetage MSIX (MsixPackagingTool.exe) à empaqueter.After creating the XML file, the script will then pass the XML file to the MSIX Packaging Tool (MsixPackagingTool.exe) to be packaged.

JournalisationLogging

Le script génère un fichier journal qui indique ce qui s’est écoulé tout au long de l’exécution du script.The script will generate a log file which outlines what has transpired throughout the script execution. Le fichier journal fournit des détails relatifs à l’empaquetage des applications dans le format d’empaquetage MSIX et des informations relatives à la progression des scripts.The log file will provide details related to the packaging of applications to the MSIX packaging format, and information related to script progression. Les journaux peuvent être lus à partir de n’importe quel utilitaire de texte, mais ils ont été configurés pour la lecture à l’aide du lecteur de journal trace32.The logs can be read from any text utility, but have been configured for reading using the Trace32 log reader. Les erreurs dans l’exécution du script sont mises en surbrillance en rouge et les avertissements en jaune.Errors in the script execution will be highlighted as Red, and Warnings as yellow. Pour plus d’informations sur le lecteur de journal de trace 32, consultez CMTrace sur Microsoft docs.For more information on the Trace 32 log reader, please visit CMTrace on Microsoft Docs.

Le fichier journal est créé dans le répertoire du script .\logs\BulkConversion.log .The log file is created within the script's directory .\logs\BulkConversion.log.