Перенос пакетов MSIX из подключения приложения MSIX к приложению
Подключение приложений улучшает административный и пользовательский интерфейс при подключении приложения MSIX. Если вы используете подключение приложений MSIX, можно перенести пакеты MSIX в подключение приложения с помощью скрипта PowerShell.
Скрипт миграции может выполнять следующие действия:
Создает объект пакета подключения приложения и при необходимости может удалить исходный объект пакета MSIX.
Копирование разрешений из групп приложений, связанных с пулом узлов и пакетом MSIX.
Скопируйте расположение и группу ресурсов пула узлов и пакета MSIX.
Действие миграции журнала.
Необходимые компоненты
Чтобы использовать скрипт миграции, вам потребуется:
Пул узлов, настроенный в качестве среды проверки, с по крайней мере одним пакетом MSIX, добавленным с подключением приложения MSIX.
Учетная запись Azure с ролью управления доступом на основе ролей Azure (RBAC), назначенная в пуле узлов.
Локальное устройство с PowerShell. Убедитесь, что установлены последние версии Az PowerShell и пакета SDK Для Microsoft Graph PowerShell. В частности, требуются следующие модули:
- Az.DesktopVirtualization
- Az.Accounts
- Az.Resources
- Microsoft.Graph.Authentication
Параметры
Ниже приведены параметры, которые можно использовать с скриптом миграции:
Параметр | Описание |
---|---|
MsixPackage |
Объект пакета MSIX для миграции в объект присоединения приложения. Это значение можно передать через конвейер. |
PermissionSource |
Где получить разрешения для нового объекта присоединения приложения. По умолчанию разрешения не предоставляются. Доступные параметры:
|
HostPoolsForNewPackage |
Идентификаторы ресурсов пулов узлов для связывания нового объекта подключения приложения с. По умолчанию пулы узлов отсутствуют. Пулы узлов должны находиться в том же расположении, что и пакеты подключения приложения, с которыми они связаны. |
TargetResourceGroupName |
Группа ресурсов для хранения нового объекта подключения приложения. По умолчанию группа ресурсов пула узлов, с которым связан пакет MSIX. |
Location |
Регион Azure для создания объекта присоединения приложения в. По умолчанию используется расположение пула узлов, с которым связан пакет MSIX. Пакеты подключения приложений должны находиться в том же расположении, что и пул узлов, с которым они связаны. |
DeleteOrigin |
Удалите исходный пакет MSIX после миграции. |
IsActive |
Включает новый объект подключения приложения. |
DeactivateOrigin |
Отключает исходный объект пакета MSIX после миграции. |
PassThru |
Передает новый объект подключения приложения через.
Passthru возвращает объект для созданного пакета. Используйте это значение, если вы хотите проверить его или передать его в другую команду PowerShell. |
LogInJSON |
Запись в файл журнала в формате JSON. |
LogFilePath |
Путь к файлу журнала по умолчанию используется MsixMigration[Timestamp].log в временной папке, например C:\Users\%USERNAME%\AppData\Local\Temp\MsixMigration<DATETIME>.log . Путь к ведению журнала записывается в консоль при запуске скрипта. |
Скачивание и запуск скрипта миграции
Вот как перенести пакеты MSIX из приложения MSIX в присоединение к приложению.
Внимание
В следующих примерах необходимо изменить <placeholder>
значения для собственных.
Откройте запрос PowerShell на локальном устройстве.
Скачайте скрипт
Migrate-MsixPackagesToAppAttach.ps1
PowerShell и разблокируйте его, выполнив следующие команды:$url = "https://raw.githubusercontent.com/Azure/RDS-Templates/master/msix-app-attach/MigrationScript/Migrate-MsixPackagesToAppAttach.ps1" $filename = $url.Split('/')[-1] Invoke-WebRequest -Uri $url -OutFile $filename | Unblock-File
Импортируйте необходимые модули, выполнив следующие команды:
Import-Module Az.DesktopVirtualization Import-Module Az.Accounts Import-Module Az.Resources Import-Module Microsoft.Graph.Authentication
Подключитесь к Azure, выполнив следующую команду и выполнив следующую команду, чтобы войти в учетную запись Azure:
Connect-AzAccount
Подключитесь к Microsoft Graph, выполнив следующую команду:
Connect-MgGraph -Scopes "Group.Read.All"
В следующих подразделах содержатся некоторые примеры использования скрипта миграции. Ознакомьтесь с разделом параметров для всех доступных параметров и описания каждого параметра.
Совет
Если вы не передаете параметры скрипту миграции, оно имеет следующее поведение по умолчанию:
- Разрешения не предоставляются новому пакету подключения приложения.
- Новый пакет подключения приложения не связан с пулами узлов и неактивен.
- Новый пакет подключения приложения создается в той же группе ресурсов и расположении, что и пул узлов.
- Исходный пакет MSIX по-прежнему активен, не отключается или не удаляется.
- Данные журнала записываются в путь к файлу по умолчанию.
Перенос определенного пакета MSIX, добавленного в пул узлов и группу приложений
Ниже приведен пример миграции определенного пакета MSIX, добавленного в пул узлов из приложения MSIX в присоединение к приложению. В этом примере:
- Переносит пакет MSIX в ту же группу ресурсов и расположение, что и пул узлов.
- Назначает пакет MSIX в приложении в присоединении к тому же пулу узлов и тем же пользователям, что и источник группы приложений RemoteApp.
- Оставляет существующую конфигурацию пакета MSIX в приложении MSIX включено активно в пуле узлов. Если вы хотите немедленно отключить пакет MSIX, используйте
-DeactivateOrigin
этот параметр. - Задает новую конфигурацию пакета MSIX в приложении, неактивную. Если вы хотите включить пакет MSIX немедленно, используйте
-IsActive
этот параметр. - Записывает данные журнала в путь к файлу по умолчанию и формат.
В той же командной строке PowerShell получите список пакетов MSIX, добавленных в пул узлов, выполнив следующие команды:
$parameters = @{ HostPoolName = '<HostPoolName>' ResourceGroupName = '<ResourceGroupName>' } Get-AzWvdMsixPackage @parameters | Select-Object DisplayName, Name
Вы должны увидеть результат, аналогичный приведенному ниже.
DisplayName Name ----------- ---- MyApp hp01/MyApp_1.0.0.0_neutral__abcdef123ghij
Найдите пакет MSIX, который вы хотите перенести и использовать значение из
Name
параметра в предыдущих выходных данных:$parameters = @{ HostPoolName = '<HostPoolName>' ResourceGroupName = '<ResourceGroupName>' } $msixPackage = Get-AzWvdMsixPackage @parameters | ? Name -Match '<MSIXPackageName>' $hostPoolId = (Get-AzWvdHostPool @parameters).Id
Перенесите пакет MSIX, выполнив следующие команды:
$parameters = @{ PermissionSource = 'RAG' HostPoolsForNewPackage = $hostPoolId PassThru = $true } $msixPackage | .\Migrate-MsixPackagesToAppAttach.ps1 @parameters
Перенос всех пакетов MSIX, добавленных в пул узлов
Ниже приведен пример переноса всех пакетов MSIX, добавленных в пул узлов из приложения MSIX в присоединение к приложению. В этом примере:
- Переносит пакеты MSIX в одну и ту же группу ресурсов и расположение.
- Добавляет новые пакеты подключения приложений к тому же пулу узлов.
- Задает для всех приложений присоединение пакетов к активным.
- Задает для всех пакетов MSIX неактивное значение.
- Копирует разрешения из связанной группы классических приложений.
- Записывает данные журнала в пользовательский путь
C:\MsixToAppAttach.log
к файлу в формате JSON.
В одной строке PowerShell получите все пакеты MSIX, добавленные в пул узлов, и сохраните их в переменной, выполнив следующие команды:
$parameters = @{ HostPoolName = '<HostPoolName>' ResourceGroupName = '<ResourceGroupName>' } $msixPackages = Get-AzWvdMsixPackage @parameters $hostPoolId = (Get-AzWvdHostPool @parameters).Id
Перенесите пакет MSIX, выполнив следующие команды:
$logFilePath = "C:\Temp\MsixToAppAttach.log" $parameters = @{ IsActive = $true DeactivateOrigin = $true PermissionSource = 'DAG' HostPoolsForNewPackage = $hostPoolId PassThru = $true LogInJSON = $true LogFilePath = $LogFilePath } $msixPackages | .\Migrate-MsixPackagesToAppAttach.ps1 @parameters