Compartilhar via


Scripts de conversão em massa do MSIX

Os scripts de conversão em massa no MSIX Toolkit podem ser usados para automatizar a conversão de aplicativos do Windows para o formato de pacote MSIX. A lista de aplicativos e seus detalhes são fornecidos no script entry.ps1 .

Preparar máquinas para conversão

Antes de executar o script de conversão em massa do MSIX Toolkit, para automatizar a conversão do aplicativo para o formato de empacotamento MSIX, os dispositivos que você usará (virtuais ou remotos) devem ser configurados para permitir a comunicação remota e ter a Ferramenta de Empacotamento MSIX instalada.

Termo Descrição
Computador host Este é o dispositivo que executa os scripts de conversão em massa.
Máquina Virtual Este é um dispositivo existente no Hyper-V, hospedado na Máquina Host.
Computador remoto Esta é uma máquina física ou virtual acessível pela rede.

Computador host

A máquina host deve atender aos seguintes requisitos:

  • A Ferramenta de Empacotamento MSIX deve ser instalada.
  • Se as Máquinas Virtuais estiverem sendo usadas, o Hyper-V deverá ser instalado.
  • Se as Máquinas Remotas estiverem sendo usadas:
    • O dispositivo existe no mesmo domínio que a(s) máquina(s) remota(s):
      • Habilitar a comunicação remota do PowerShell
        # Enables PowerShell Remoting
        Enable-PSRemoting -force
        
    • O dispositivo existe em um grupo de trabalho ou em um domínio alternativo como a(s) máquina(s) remota(s):
      • Habilitar a Comunicação Remota do PowerShell
      • O Host Confiável do WinRM deve conter o nome do dispositivo ou o endereço IP do Computador Remoto
        # Enables PowerShell Remoting
        Enable-PSRemoting -force
        Set-Item WSMan:\localhost\Client\TrustedHosts -Value <RemoteMachineName>,[<RemoteMachineName>,...]
        

Computador remoto

A Máquina Remota deve atender aos seguintes requisitos:

  • A Ferramenta de Empacotamento MSIX deve ser instalada.

  • Se o dispositivo existir no mesmo domínio que a máquina host:

    • Habilitar a Comunicação Remota do PowerShell
    • O WinRM deve estar habilitado
    • Permitir ICMPv4 por meio do firewall do cliente
      # Enables PowerShell Remoting
      Enable-PSRemoting -force
      New-NetFirewallRule -DisplayName “ICMPv4” -Direction Inbound -Action Allow -Protocol icmpv4 -Enabled True
      
  • Se o dispositivo existir em um grupo de trabalho ou em um domínio alternativo como a Máquina Host:

    • Habilitar a Comunicação Remota do PowerShell
    • O Host Confiável do WinRM deve conter o nome do dispositivo ou o endereço IP do Computador Host
    • Permitir ICMPv4 por meio do firewall do cliente
      # 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>
      
      

Máquina Virtual

É recomendável que a imagem "Ambiente de Ferramentas de Empacotamento MSIX" de Criação Rápida do Hyper-V seja usada, pois ela é pré-configurada para atender a todos os requisitos. A máquina virtual deve estar hospedada no computador host e em execução no Microsoft Hyper-V.

A Máquina Virtual deve atender aos seguintes requisitos:

Sintaxe

entry.ps1

Descrição

Esse é um conjunto de scripts do PowerShell que fornece a capacidade de empacotar aplicativos em massa no formato de pacote MSIX. Esses scripts se conectarão a uma máquina virtual local ou remota que será usada para empacotar cada aplicativo.

Os aplicativos que estão sendo empacotados no formato de aplicativo MSIX serão convertidos na ordem em que foram inseridos no script entry.ps1 . Os computadores remotos listados no script entry.ps1 serão usados para empacotar os aplicativos no formato MSIX e serão usados exclusivamente. As máquinas virtuais podem ser usadas várias vezes para empacotar diferentes aplicativos no formato de aplicativo MSIX.

Antes de executar o script, você deve primeiro adicionar os aplicativos que deseja converter para a conversionsParameters variável no script. Vários aplicativos podem ser adicionados à variável. O script aproveita o aplicativo e as máquinas remotas/virtuais para criar um arquivo XML formatado para atender aos requisitos da Ferramenta de Empacotamento MSIX (MsixPackagingTool.exe). Depois de criar o arquivo XML, o script run_job.ps1 é executado em um novo processo do PowerShell que executa MsixPackagingTool.exe no dispositivo de destino para converter o aplicativo e colocá-lo na pasta .\Out localizada na pasta de execução de script.

Exemplo

PS C:\> entry.ps1

Este exemplo executa o script entry.ps1 . Esse script converte conversionsParameters os aplicativos especificados na variável em pacotes MSIX. Os aplicativos são convertidos usando as máquinas virtuais ou máquinas remotas indicadas nas variáveis virtualMachines e remoteMachines .

Parâmetros

virtualMachines

O virtualMachines parâmetro é uma matriz que contém o nome e as credenciais das máquinas virtuais a serem conectadas e acessadas ao empacotar um aplicativo no formato MSIX.

  • Tipo: Matriz
  • Obrigatório: Não
$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.
    }
)

A máquina virtual especificada será usada para empacotar aplicativos no formato MSIX. Essa máquina virtual será conectada usando as credenciais inseridas quando solicitado (o prompt aparece diretamente após a execução do script entry.ps1 ). Antes de empacotar um aplicativo para o formato de empacotamento MSIX, o script criará um instantâneo da VM do Hyper-V e, em seguida, será restaurado para esse instantâneo depois que o aplicativo for empacotado.

Máquinas remotas

O remoteMachines parâmetro é uma matriz que contém o nome e as credenciais dos computadores remotos aos quais se conectar e acessar ao empacotar um aplicativo no formato MSIX. As máquinas remotas especificadas serão dispositivos de uso único usados para empacotar um único aplicativo.

As máquinas remotas devem ser acessíveis e detectáveis na rede.

  • Tipo: Matriz
  • Obrigatório: Não
$remoteMachines = @(
    @{
        ComputerName = "Computer.Domain.com";   # The fully qualified name of the remote machine.
        Credential = $credential }              # Credentials used to connect/login to the remote machine.
)

O computador remoto especificado será usado para empacotar um único aplicativo no formato MSIX. Esta máquina remota será conectada usando as credenciais inseridas quando solicitado (o prompt aparece diretamente após a execução do script entry.ps1 ).

Certifique-se de que o nome de domínio totalmente qualificado ou o alias externo do dispositivo possa ser resolvido antes da execução do script entry.ps1 .

certificado de assinatura

O signingCertificate parâmetro é uma matriz que contém informações relacionadas ao certificado de assinatura de código que será usado para assinar o aplicativo empacotado. Esse certificado deve ter um nível de criptografia de no mínimo SHA256.

  • Tipo: Matriz
  • Obrigatório: Não
$SigningCertificate = @{
    Password = "Password"; 
    Path = "C:\Temp\ContosoLab.pfx"
}

conversionsParâmetros

O conversionsParameters parâmetro é uma matriz que contém informações sobre os aplicativos que você deseja converter para o formato MSIX. Cada aplicativo na matriz será analisado individualmente e executado por meio da conversão do pacote MSIX em um computador remoto ou em uma máquina virtual. Os aplicativos serão convertidos na ordem em que aparecem no script. Se a conversão para o formato MSIX falhar, o script não tentará converter novamente o aplicativo em uma máquina remota ou virtual diferente.

  • Tipo: Matriz
  • Obrigatório: sim
$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.
    }
)

As informações do aplicativo fornecidas na conversionsParameters variável serão usadas para gerar um arquivo XML com todos os detalhes necessários do aplicativo. Depois de criar o arquivo XML, o script passará o arquivo XML para a Ferramenta de Empacotamento MSIX (MsixPackagingTool.exe) para ser empacotado.

Logging

O script gerará um arquivo de log que descreve o que aconteceu durante a execução do script. O arquivo de log fornecerá detalhes relacionados ao empacotamento de aplicativos para o formato de empacotamento MSIX e informações relacionadas à progressão do script. Os logs podem ser lidos de qualquer utilitário de texto, mas foram configurados para leitura usando o leitor de log Trace32. Os erros na execução do script serão destacados como vermelho e os avisos em amarelo. Para obter mais informações sobre o leitor de log Trace 32, visite CMTrace.

O arquivo de log é criado no diretório .\logs\BulkConversion.logdo script.