Script di conversione in blocco MSIX
Gli script di conversione bulk in MSIX Toolkit possono essere usati per automatizzare la conversione delle app di Windows nel formato del pacchetto MSIX. L'elenco delle app e i relativi dettagli vengono forniti nello script entry.ps1 .
Preparare i computer per la conversione
Prima di eseguire lo script di conversione bulk di MSIX Toolkit, per automatizzare la conversione dell'applicazione nel formato di creazione di pacchetti MSIX, i dispositivi che verranno usati (virtuali o remoti) devono essere configurati per consentire la comunicazione remota e installare MSIX Packaging Tool.
Termine | Descrizione |
---|---|
Computer host | Si tratta del dispositivo che esegue gli script di conversione bulk. |
Macchina virtuale | Si tratta di un dispositivo esistente in Hyper-V, ospitato nel computer host. |
Computer remoto | Si tratta di una macchina virtuale o fisica accessibile tramite la rete. |
Computer host
Il computer host deve soddisfare i requisiti seguenti:
- MSIX Packaging Tool deve essere installato.
- Se si usa Macchine virtuali, è necessario installare Hyper-V.
- Se vengono usati computer remoti:
- Il dispositivo esiste nello stesso dominio dei computer remoti:
- Abilitare la comunicazione remota di PowerShell
# Enables PowerShell Remoting Enable-PSRemoting -force
- Abilitare la comunicazione remota di PowerShell
- Il dispositivo esiste in un gruppo di lavoro o in un dominio alternativo come computer remoti:
- Abilitare la comunicazione remota di PowerShell
- L'host attendibile WinRM deve contenere il nome del dispositivo o l'indirizzo IP del computer remoto
# Enables PowerShell Remoting Enable-PSRemoting -force Set-Item WSMan:\localhost\Client\TrustedHosts -Value <RemoteMachineName>,[<RemoteMachineName>,...]
- Il dispositivo esiste nello stesso dominio dei computer remoti:
Computer remoto
Il computer remoto deve soddisfare i requisiti seguenti:
MSIX Packaging Tool deve essere installato.
Se il dispositivo esiste nello stesso dominio del computer host:
- Comunicazione remota di PowerShell
- WinRM deve essere abilitato
- Consentire ICMPv4 tramite il firewall client
# Enables PowerShell Remoting Enable-PSRemoting -force New-NetFirewallRule -DisplayName “ICMPv4” -Direction Inbound -Action Allow -Protocol icmpv4 -Enabled True
Se il dispositivo esiste all'interno di un gruppo di lavoro o di un dominio alternativo come computer host:
- Comunicazione remota di PowerShell
- L'host attendibile WinRM deve contenere il nome del dispositivo o l'indirizzo IP del computer host
- Consentire ICMPv4 tramite il firewall 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>
Macchina virtuale
È consigliabile usare l'immagine Di creazione rapida di Hyper-V "MSIX Packaging Tools Environment", perché è preconfigurato per soddisfare tutti i requisiti. La macchina virtuale deve essere ospitata nel computer host ed è in esecuzione in Microsoft Hyper-V.
La macchina virtuale deve soddisfare i requisiti seguenti:
- MSIX Packaging Tool deve essere installato.
Sintassi
entry.ps1
Descrizione
Si tratta di un set di script di PowerShell che consente di creare pacchetti bulk di applicazioni nel formato del pacchetto MSIX. Questi script si connetteranno a una macchina virtuale locale o a una macchina remota che verrà usata per creare un pacchetto di ogni applicazione.
Le app in pacchetto nel formato dell'applicazione MSIX verranno convertite nell'ordine in cui sono state immesse nello script entry.ps1 . I computer remoti elencati nello script entry.ps1 verranno usati per creare un pacchetto delle applicazioni nel formato MSIX. Le macchine virtuali possono essere usate più volte per creare pacchetti di applicazioni diverse nel formato dell'applicazione MSIX.
Prima di eseguire lo script, è necessario aggiungere le app da convertire nella conversionsParameters
variabile nello script. È possibile aggiungere più app alla variabile. Lo script sfrutta l'app e le macchine virtuali remote per creare un file XML formattato per soddisfare i requisiti di MSIX Packaging Tool (MsixPackagingTool.exe). Dopo aver creato il file XML, lo script run_job.ps1 viene eseguito in un nuovo processo di PowerShell che esegue MsixPackagingTool.exe nel dispositivo di destinazione per convertire l'app e inserirla nella cartella .\Out che si trova nella cartella di esecuzione dello script.
Esempio
PS C:\> entry.ps1
Nell'esempio seguente viene eseguito lo script entry.ps1 . Questo script converte le app specificate nella conversionsParameters
variabile in pacchetti MSIX. Le app vengono convertite usando le macchine virtuali o le macchine remote indicate nelle variabili virtualMachines e remoteMachines .
Parametri
virtualMachines
Il virtualMachines
parametro è una matrice che contiene il nome e le credenziali delle macchine virtuali a cui connettersi e accedere quando si crea il pacchetto di un'app nel formato MSIX.
- Tipo: Matrice
- Richiesto: 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.
}
)
La macchina virtuale specificata verrà usata per creare il pacchetto delle app nel formato MSIX. Questa macchina virtuale verrà connessa all'uso delle credenziali immesse quando richiesto (viene visualizzata una richiesta direttamente dopo l'esecuzione dello script entry.ps1 ). Prima di creare un pacchetto di un'applicazione nel formato di creazione pacchetti MSIX, lo script creerà uno snapshot della macchina virtuale Hyper-V e quindi ripristinato in questo snapshot dopo che l'applicazione è stata inserita nel pacchetto.
remoteMachines
Il remoteMachines
parametro è una matrice che contiene il nome e le credenziali dei computer remoti a cui connettersi e accedere quando si crea il pacchetto di un'app nel formato MSIX. I computer remoti specificati saranno dispositivi a uso singolo usati per creare un pacchetto di una singola applicazione.
I computer remoti devono essere accessibili e individuabili nella rete.
- Tipo: Matrice
- Richiesto: 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.
)
Il computer remoto specificato verrà usato per creare un pacchetto di una singola app nel formato MSIX. Questo computer remoto verrà connesso con l'uso delle credenziali immesse quando richiesto (prompt viene visualizzato direttamente dopo l'esecuzione dello script entry.ps1 ).
Assicurarsi che il nome di dominio completo o l'alias esterno del dispositivo sia risolvibile prima dell'esecuzione dello script entry.ps1 .
signingCertificate
Il signingCertificate
parametro è una matrice che contiene informazioni correlate al certificato di firma del codice che verrà usato per firmare l'applicazione in pacchetto. Questo certificato deve avere almeno un livello di crittografia SHA256.
- Tipo: Matrice
- Richiesto: no
$SigningCertificate = @{
Password = "Password";
Path = "C:\Temp\ContosoLab.pfx"
}
conversionsParameters
Il conversionsParameters
parametro è una matrice che contiene informazioni sulle app da convertire in formato MSIX. Ogni app nell'array verrà analizzata singolarmente ed eseguita tramite la conversione del pacchetto MSIX in una macchina remota o in una macchina virtuale. Le app verranno convertite nell'ordine in cui vengono visualizzate nello script. Se la conversione in formato MSIX ha esito negativo, lo script non tenterà di convertire nuovamente l'applicazione in una macchina remota o in una macchina virtuale diversa.
- Tipo: Matrice
- Richiesto: sì
$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.
}
)
Le informazioni sull'app fornite nella conversionsParameters
variabile verranno usate per generare un file XML con tutti i dettagli dell'applicazione necessari. Dopo aver creato il file XML, lo script passerà quindi il file XML a MSIX Packaging Tool (MsixPackagingTool.exe) da inserire nel pacchetto.
Registrazione
Lo script genererà un file di log che descrive gli elementi che hanno avuto origine durante l'esecuzione dello script. Il file di log fornirà i dettagli relativi alla creazione di pacchetti di applicazioni al formato di creazione di pacchetti MSIX e alle informazioni relative alla progressione dello script. I log possono essere letti da qualsiasi utilità di testo, ma sono stati configurati per la lettura usando il lettore di log Trace32. Gli errori nell'esecuzione dello script verranno evidenziati come rosso e gli avvisi in giallo. Per altre informazioni sul lettore di log di traccia 32, visitare CMTrace.
Il file di log viene creato all'interno della directory .\logs\BulkConversion.log
dello script .