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
- Habilitar a comunicação remota do PowerShell
- 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>,...]
- O dispositivo existe no mesmo domínio que a(s) máquina(s) remota(s):
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:
- A Ferramenta de Empacotamento MSIX deve ser instalada.
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.log
do script.