Scripts de conversion en bloc MSIX

les scripts de conversion en bloc de l’Shared Computer Toolkit MSIX peuvent être utilisés pour automatiser la conversion d’applications Windows au format de package MSIX. La liste des applications et leurs détails sont fournis dans le script entry.ps1 .

Préparer les machines pour la conversion

avant d’exécuter le script de conversion en bloc de MSIX Shared Computer 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é.

Terme Description
Ordinateur hôte Il s’agit de l’appareil exécutant les scripts de conversion en bloc.
Machine virtuelle Il s’agit d’un appareil existant dans Hyper-V, hébergé sur l’ordinateur hôte.
Ordinateur distant Il s’agit d’une machine physique ou virtuelle accessible sur le réseau.

Ordinateur hôte

L’ordinateur hôte doit remplir les conditions suivantes :

  • L' outil d’empaquetage MSIX doit être installé.
  • Si des machines virtuelles sont utilisées, Hyper-V doit être installé.
  • Si des ordinateurs distants sont utilisés :
    • L’appareil existe dans le même domaine que le ou les ordinateurs distants :
      • Activer la communication à distance de PowerShell
        # 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 :
      • Activer la communication à distance de PowerShell
      • L’hôte approuvé WinRM doit contenir le nom de l’appareil ou l’adresse IP de l’ordinateur distant
        # Enables PowerShell Remoting
        Enable-PSRemoting -force
        Set-Item WSMan:\localhost\Client\TrustedHosts -Value <RemoteMachineName>,[<RemoteMachineName>,...]
        

Ordinateur distant

L’ordinateur distant doit remplir les conditions suivantes :

  • L' outil d’empaquetage MSIX doit être installé.

  • Si l’appareil existe dans le même domaine que l’ordinateur hôte :

    • Activer la communication à distance de PowerShell
    • WinRM doit être activé
    • Autoriser ICMPv4 via le pare-feu client
      # 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 :

    • Activer la communication à distance de PowerShell
    • L’hôte approuvé WinRM doit contenir le nom de l’appareil ou l’adresse IP de l’ordinateur hôte
    • Autoriser ICMPv4 via le pare-feu client
      # 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 virtuelle

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. L’ordinateur virtuel doit être hébergé sur l’ordinateur hôte et s’exécuter dans Microsoft Hyper-V.

L’ordinateur virtuel doit remplir les conditions suivantes :

Syntaxe

entry.ps1

Description

Il s’agit d’un ensemble de scripts PowerShell qui permettent d’empaqueter des applications en bloc dans le format de package MSIX. Ces scripts se connectent à une machine virtuelle locale ou à un ordinateur distant qui sera utilisé pour empaqueter chaque 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 . 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. Les machines virtuelles peuvent être utilisées plusieurs fois pour empaqueter des applications différentes dans le format d’application MSIX.

Avant d’exécuter le script, vous devez d’abord ajouter les applications que vous souhaitez convertir à la conversionsParameters variable dans le script. Plusieurs applications peuvent être ajoutées à la 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). 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.

Exemples

PS C:\> entry.ps1

Cet exemple exécute le script entry.ps1 . Ce script convertit les applications spécifiées dans la conversionsParameters variable en packages MSIX. Les applications sont converties à l’aide des machines virtuelles ou des ordinateurs distants indiqués dans les variables virtualMachines et remoteMachines .

Paramètres

virtualMachines

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.

  • Tapez : Ensemble
  • Obligatoire : Non
$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. 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 ). 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.

remoteMachines

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. Les ordinateurs distants spécifiés seront des appareils à usage unique utilisés pour empaqueter une application unique.

Les ordinateurs distants doivent être accessibles et détectables sur le réseau.

  • Tapez : Ensemble
  • Obligatoire : Non
$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. 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 ).

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 .

signingCertificate

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. Ce certificat doit avoir un niveau de chiffrement au minimum SHA256.

  • Tapez : Ensemble
  • Obligatoire : Non
$SigningCertificate = @{
    Password = "Password"; 
    Path = "C:\Temp\ContosoLab.pfx"
}

conversionsParameters

Le conversionsParameters paramètre est un tableau qui contient des informations sur les applications que vous souhaitez convertir au format MSIX. 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. Les applications seront converties dans l’ordre dans lequel elles apparaissent dans le 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.

  • Tapez : Ensemble
  • Obligatoire : Oui
$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. Après avoir créé le fichier XML, le script transmet le fichier XML à l' outil d’empaquetage MSIX (MsixPackagingTool.exe) à empaqueter.

Journalisation

Le script génère un fichier journal qui indique ce qui s’est écoulé tout au long de l’exécution du script. 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. 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. Les erreurs dans l’exécution du script sont mises en surbrillance en rouge et les avertissements en jaune. Pour plus d’informations sur le lecteur de journal de trace 32, consultez CMTrace sur Microsoft docs.

Le fichier journal est créé dans le répertoire du script .\logs\BulkConversion.log .