Перенос пакетов MSIX из подключения приложения MSIX к приложению

Внимание

Подключение приложений в настоящее время находится в предварительной версии. Юридические условия, применимые к функциям Azure, которые находятся в состоянии бета-версии, предварительной версии или иным образом еще не выпущены в общедоступной версии, см. на странице Дополнительные условия использования предварительных версий в Microsoft Azure.

Подключение приложений (предварительная версия) улучшает административный и пользовательский интерфейс при подключении приложения 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 Где получить разрешения для нового объекта присоединения приложения. По умолчанию разрешения не предоставляются. Доступные параметры:
  • DAG: группа классических приложений, связанная с пулом узлов и пакетом MSIX
  • RAG: одна или несколько групп приложений RemoteApp, связанных с пулом узлов и пакетом MSIX
Оба параметра предоставляют разрешение всем пользователям и группам с любым разрешением, область специально для группы приложений.
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> значения для собственных.

  1. Откройте запрос PowerShell на локальном устройстве.

  2. Скачайте скрипт 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
    
  3. Импортируйте необходимые модули, выполнив следующие команды:

    Import-Module Az.DesktopVirtualization
    Import-Module Az.Accounts
    Import-Module Az.Resources
    Import-Module Microsoft.Graph.Authentication
    
  4. Подключение в Azure, выполнив следующую команду и выполнив следующие запросы для входа в учетную запись Azure:

    Connect-AzAccount
    
  5. Подключение в Microsoft Graph, выполнив следующую команду:

    Connect-MgGraph -Scopes "Group.Read.All"
    

В следующих подразделах содержатся некоторые примеры использования скрипта миграции. Ознакомьтесь с разделом параметров для всех доступных параметров и описания каждого параметра.

Совет

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

  • Разрешения не предоставляются новому пакету подключения приложения.
  • Новый пакет подключения приложения не связан с пулами узлов и неактивен.
  • Новый пакет подключения приложения создается в той же группе ресурсов и расположении, что и пул узлов.
  • Исходный пакет MSIX по-прежнему активен, не отключается или не удаляется.
  • Данные журнала записываются в путь к файлу по умолчанию.

Перенос определенного пакета MSIX, добавленного в пул узлов и группу приложений

Ниже приведен пример миграции определенного пакета MSIX, добавленного в пул узлов из приложения MSIX в присоединение к приложению. В этом примере:

  • Переносит пакет MSIX в ту же группу ресурсов и расположение, что и пул узлов.
  • Назначает пакет MSIX в приложении в присоединении к тому же пулу узлов и тем же пользователям, что и источник группы приложений RemoteApp.
  • Оставляет существующую конфигурацию пакета MSIX в приложении MSIX включено активно в пуле узлов. Если вы хотите немедленно отключить пакет MSIX, используйте -DeactivateOrigin этот параметр.
  • Задает новую конфигурацию пакета MSIX в приложении, неактивную. Если вы хотите включить пакет MSIX немедленно, используйте -IsActive этот параметр.
  • Записывает данные журнала в путь к файлу по умолчанию и формат.
  1. В той же командной строке 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
    
  2. Найдите пакет MSIX, который вы хотите перенести и использовать значение из Name параметра в предыдущих выходных данных:

    $parameters = @{
        HostPoolName = '<HostPoolName>'
        ResourceGroupName = '<ResourceGroupName>'
    }
    
    $msixPackage = Get-AzWvdMsixPackage @parameters | ? Name -Match '<MSIXPackageName>'
    $hostPoolId = (Get-AzWvdHostPool @parameters).Id
    
  3. Перенесите пакет MSIX, выполнив следующие команды:

    $parameters = @{
        PermissionSource = 'RAG'
        HostPoolsForNewPackage = $hostPoolId
        PassThru = $true
    }
    
    $msixPackage | .\Migrate-MsixPackagesToAppAttach.ps1 @parameters
    

Перенос всех пакетов MSIX, добавленных в пул узлов

Ниже приведен пример переноса всех пакетов MSIX, добавленных в пул узлов из приложения MSIX в присоединение к приложению. В этом примере:

  • Переносит пакеты MSIX в одну и ту же группу ресурсов и расположение.
  • Добавляет новые пакеты подключения приложений к тому же пулу узлов.
  • Задает для всех приложений присоединение пакетов к активным.
  • Задает для всех пакетов MSIX неактивное значение.
  • Копирует разрешения из связанной группы классических приложений.
  • Записывает данные журнала в пользовательский путь C:\MsixToAppAttach.log к файлу в формате JSON.
  1. В одной строке PowerShell получите все пакеты MSIX, добавленные в пул узлов, и сохраните их в переменной, выполнив следующие команды:

    $parameters = @{
        HostPoolName = '<HostPoolName>'
        ResourceGroupName = '<ResourceGroupName>'
    }
    
    $msixPackages = Get-AzWvdMsixPackage @parameters
    $hostPoolId = (Get-AzWvdHostPool @parameters).Id   
    
  2. Перенесите пакет 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