Скрипты массового преобразования MSIX

Скрипты массового преобразования в наборе средств MSIX можно использовать для автоматизации преобразования приложений Windows в формат пакета MSIX. Список приложений и их сведений приведен в скрипте entry.ps1 .

Подготовка компьютеров к преобразованию

Перед запуском скрипта массового преобразования msIX Toolkit необходимо настроить для автоматизации преобразования приложения в формат упаковки MSIX устройства, которые вы будете использовать (виртуальные или удаленные), чтобы разрешить удаленное взаимодействие и установить средство упаковки MSIX.

Термин Описание
Главный компьютер Это устройство, выполняющее скрипты массового преобразования.
Виртуальная машина Это устройство, существующее в Hyper-V, размещенное на хост-компьютере.
Удаленный компьютер Это физическая или виртуальная машина, доступная по сети.

Главный компьютер

Главный компьютер должен соответствовать следующим требованиям:

  • Необходимо установить средство упаковки MSIX .
  • Если используются Виртуальные машины, необходимо установить Hyper-V.
  • Если используются удаленные компьютеры, выполните следующие действия.
    • Устройство существует в том же домене, что и удаленные компьютеры:
      • Включение удаленного взаимодействия PowerShell
        # Enables PowerShell Remoting
        Enable-PSRemoting -force
        
    • Устройство существует в рабочей группе или в альтернативном домене в качестве удаленных компьютеров:
      • Включение удаленного взаимодействия PowerShell
      • Доверенный узел WinRM должен содержать имя устройства или IP-адрес удаленного компьютера.
        # Enables PowerShell Remoting
        Enable-PSRemoting -force
        Set-Item WSMan:\localhost\Client\TrustedHosts -Value <RemoteMachineName>,[<RemoteMachineName>,...]
        

Удаленный компьютер

Удаленный компьютер должен соответствовать следующим требованиям:

  • Необходимо установить средство упаковки MSIX .

  • Если устройство существует в том же домене, что и главный компьютер:

    • Включение удаленного взаимодействия PowerShell
    • Необходимо включить WinRM
    • Разрешить ICMPv4 через брандмауэр клиента
      # Enables PowerShell Remoting
      Enable-PSRemoting -force
      New-NetFirewallRule -DisplayName “ICMPv4” -Direction Inbound -Action Allow -Protocol icmpv4 -Enabled True
      
  • Если устройство существует в рабочей группе или альтернативном домене в качестве хост-компьютера:

    • Включение удаленного взаимодействия PowerShell
    • Доверенный узел WinRM должен содержать имя устройства или IP-адрес хост-компьютера.
    • Разрешить ICMPv4 через брандмауэр клиента
      # 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>
      
      

Виртуальная машина

Рекомендуется использовать образ быстрого создания Hyper-V "Среда средств упаковки MSIX", так как он предварительно настроен для удовлетворения всех требований. Виртуальная машина должна размещаться на хост-компьютере и работать в Microsoft Hyper-V.

Виртуальная машина должна соответствовать следующим требованиям:

Синтаксис

entry.ps1

Описание

Это набор сценариев PowerShell, который предоставляет возможность массовой упаковки приложений в формате пакета MSIX. Эти скрипты будут подключаться к локальной виртуальной машине или удаленной машине, которая будет использоваться для упаковки каждого приложения.

Приложения, упакованные в формат приложения MSIX, будут преобразованы в том порядке, в который они были введены в скриптеentry.ps1 . Удаленные компьютеры, перечисленные в скрипте entry.ps1 , будут использоваться для упаковки приложений в формат MSIX в единственном числе. Виртуальные машины можно использовать несколько раз для упаковки различных приложений в формат приложения MSIX.

Перед выполнением скрипта необходимо сначала добавить приложения, которые необходимо преобразовать conversionsParameters в переменную в скрипте. В переменную можно добавить несколько приложений. Скрипт использует приложение и удаленные или виртуальные машины для создания XML-файла, отформатированного в соответствии с требованиями средства упаковки MSIX (MsixPackagingTool.exe). После создания XML-файла скриптrun_job.ps1 выполняется в новом процессе PowerShell, который выполняет MsixPackagingTool.exe на целевом устройстве, чтобы преобразовать приложение и поместить его в папку .\Out , расположенную в папке выполнения скрипта.

Пример

PS C:\> entry.ps1

Пример Ths выполняет скрипт entry.ps1 . Этот скрипт преобразует приложения, указанные в переменной, conversionsParameters в пакеты MSIX. Приложения преобразуются с помощью виртуальных машин или удаленных машин, указанных в переменных virtualMachines и remoteMachines .

Параметры

virtualMachines

Параметр virtualMachines — это массив, содержащий имя и учетные данные виртуальных машин для подключения к приложению и доступа при упаковке приложения в формат MSIX.

  • Тип: Массива
  • Обязательное: Нет
$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.
    }
)

Указанная виртуальная машина будет использоваться для упаковки приложений в формат MSIX. Эта виртуальная машина будет подключена к использованию учетных данных, введенных при появлении запроса (запрос появится непосредственно после выполнения скрипта entry.ps1 выполнения). Перед упаковкой приложения в формат упаковки MSIX скрипт создаст моментальный снимок виртуальной машины Hyper-V, а затем восстановится до этого моментального снимка после упаковки приложения.

remoteMachines

Параметр remoteMachines — это массив, содержащий имя и учетные данные удаленных компьютеров для подключения к приложению и доступа при упаковке приложения в формат MSIX. Указанные удаленные компьютеры будут использовать устройства с одним использованием для упаковки одного приложения.

Удаленные компьютеры должны быть доступны и доступны для обнаружения в сети.

  • Тип: Массива
  • Обязательное: Нет
$remoteMachines = @(
    @{
        ComputerName = "Computer.Domain.com";   # The fully qualified name of the remote machine.
        Credential = $credential }              # Credentials used to connect/login to the remote machine.
)

Указанный удаленный компьютер будет использоваться для упаковки одного приложения в формат MSIX. Этот удаленный компьютер будет подключен к использованию учетных данных, введенных при появлении запроса (запрос появляется непосредственно после выполнения скрипта entry.ps1 выполнения).

Перед выполнением скрипта entry.ps1 убедитесь, что полное доменное имя или внешний псевдоним устройства можно разрешить.

signingCertificate

Параметр signingCertificate — это массив, содержащий сведения, связанные с сертификатом подписи кода, который будет использоваться для подписи упаковаемого приложения MSIX. Этот сертификат должен иметь уровень шифрования не менее SHA256.

  • Тип: Массива
  • Обязательное: Нет
$SigningCertificate = @{
    Password = "Password"; 
    Path = "C:\Temp\ContosoLab.pfx"
}

conversionsParameters

Параметр conversionsParameters — это массив, содержащий сведения о приложениях, которые требуется преобразовать в формат MSIX. Каждое приложение в массиве анализируется по отдельности и выполняется через преобразование пакета MSIX на удаленной машине или виртуальной машине. Приложения будут преобразованы в том порядке, в который они отображаются в скрипте. Если преобразование в формат MSIX завершается сбоем, скрипт не будет повторно пытаться преобразовать приложение на другой удаленной машине или виртуальной машине.

  • Тип: Массива
  • Обязательное: Да
$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.
    }
)

Сведения о приложении, предоставленные в переменной conversionsParameters , будут использоваться для создания XML-файла со всеми необходимыми сведениями о приложении. После создания XML-файла скрипт передает XML-файл в упаковываемую программу MSIX (MsixPackagingTool.exe).

Logging

Скрипт создаст файл журнала, который описывает, что произошло во время выполнения скрипта. Файл журнала предоставит сведения, связанные с упаковкой приложений в формат упаковки MSIX, и сведения, связанные с развитием сценария. Журналы можно считывать из любой текстовой программы, но были настроены для чтения с помощью средства чтения журналов Trace32. Ошибки в выполнении скрипта будут выделены красным цветом, а предупреждения — желтым цветом. Дополнительные сведения о средстве чтения журнала Trace 32 см. в CMTrace на Документация Майкрософт.

Файл журнала создается в каталоге .\logs\BulkConversion.logскрипта.