Скрипты массового преобразования MSIX
Скрипты массового преобразования в наборе средств MSIX можно использовать для автоматизации преобразования приложений Windows в формат пакета MSIX. Список приложений и их сведений приведен в скрипте entry.ps1 .
Подготовка компьютеров к преобразованию
Перед запуском скрипта массового преобразования средств MSIX Toolkit необходимо настроить для автоматизации преобразования приложения в формат упаковки MSIX устройства, которые вы будете использовать (виртуальные или удаленные), чтобы разрешить удаленное взаимодействие и установить средство упаковки MSIX.
Срок | Description |
---|---|
Хост-компьютер | Это устройство, выполняющее скрипты массового преобразования. |
Виртуальная машина | Это устройство, существующее в Hyper-V, размещенное на хост-компьютере. |
Удаленный компьютер | Это физическая или виртуальная машина, доступная по сети. |
Хост-компьютер
Компьютер узла должен соответствовать следующим требованиям:
- Необходимо установить средство упаковки MSIX.
- Если используется Виртуальные машины, необходимо установить Hyper-V.
- Если используются удаленные компьютеры:
- Устройство существует в том же домене, что и удаленные компьютеры:
- Включение удаленного взаимодействия PowerShell
# Enables PowerShell Remoting Enable-PSRemoting -force
- Включение удаленного взаимодействия PowerShell
- Устройство существует в рабочей группе или в альтернативном домене в качестве удаленных компьютеров:
- Включение удаленного взаимодействия 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.
Виртуальная машина должна соответствовать следующим требованиям:
- Необходимо установить средство упаковки MSIX.
Синтаксис
entry.ps1
Description
Это набор сценариев 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 .
подписьCertificate
Параметр signingCertificate
— это массив, содержащий сведения, связанные с сертификатом подписи кода, который будет использоваться для подписи упаковаемого приложения. Этот сертификат должен иметь уровень шифрования по крайней мере 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).
Ведение журнала
Скрипт создаст файл журнала, который описывает, что произошло во время выполнения скрипта. Файл журнала предоставит сведения, связанные с упаковкой приложений в формат упаковки MSIX и сведения, связанные с прогрессированием скрипта. Журналы можно считывать из любой текстовой программы, но были настроены для чтения с помощью средства чтения журналов Trace32. Ошибки в выполнении скрипта будут выделены красным цветом и предупреждения желтым цветом. Дополнительные сведения о средстве чтения журналов трассировки 32 см. в CMTrace.
Файл журнала создается в каталоге .\logs\BulkConversion.log
скрипта.