Scripts de conversão em massa 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 de seu 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 MSIX Packaging Tool 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 MSIX Packaging Tool deve estar 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 da Máquina Remota
# 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 MSIX Packaging Tool deve estar instalada.
Se o dispositivo existir no mesmo domínio que a Máquina Host:
- Habilitar a Comunicação Remota do PowerShell
- WinRM deve ser habilitado
- Permitir ICMPv4 através 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 dentro de um grupo de trabalho ou de 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 da Máquina Host
- Permitir ICMPv4 através 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 "MSIX Packaging Tools Environment" 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 ser hospedada na máquina host e em execução no Microsoft Hyper-V.
A máquina virtual deve atender aos seguintes requisitos:
- A MSIX Packaging Tool deve estar instalada.
Sintaxe
entry.ps1
Descrição
Este é 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 máquina 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 . As máquinas remotas listadas no script entry.ps1 serão usadas para empacotar os aplicativos no formato MSIX serão usadas singularmente. As máquinas virtuais podem ser usadas várias vezes para empacotar aplicativos diferentes 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 MSIX Packaging Tool (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 do script.
Exemplo
PS C:\> entry.ps1
Ths exemplo executa o script entry.ps1 . Esse script converte os aplicativos especificados na conversionsParameters
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 às quais se conectar e acessar ao empacotar um aplicativo no formato MSIX.
- Tipo: Array
- 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 ao uso das 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 Hyper-V e, em seguida, restaurado para esse instantâneo após o aplicativo ter sido empacotado.
remotoMáquinas
O remoteMachines
parâmetro é uma matriz que contém o nome e as credenciais das máquinas remotas às 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 estar acessíveis e detectáveis na rede.
- Tipo: Array
- 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.
)
A máquina remota especificada será usada para empacotar um único aplicativo no formato MSIX. Essa máquina remota será conectada ao uso das 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 .
assinaturaCertificado
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: Array
- Obrigatório: Não
$SigningCertificate = @{
Password = "Password";
Path = "C:\Temp\ContosoLab.pfx"
}
conversõesParâ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 através da conversão do pacote MSIX em uma máquina remota ou 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 máquina virtual diferente.
- Tipo: Array
- 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 MSIX Packaging Tool (MsixPackagingTool.exe) a ser empacotada.
Registrando em log
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 de 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 realçados como Vermelho e Avisos como amarelo. Para obter mais informações sobre o leitor de log do Trace 32, visite CMTrace.
O arquivo de log é criado dentro do diretório .\logs\BulkConversion.log
do script .