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
        
    • 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>,...]
        

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:

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:
$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.logdello script .