다음을 통해 공유


MSIX 앱 연결에서 앱 연결로 MSIX 패키지 마이그레이션

앱 연결은 MSIX 앱 연결을 통해 관리 및 사용자 환경을 개선합니다. MSIX 앱 연결을 사용하는 경우 PowerShell 스크립트를 사용하여 MSIX 패키지를 앱 연결로 마이그레이션할 수 있습니다.

마이그레이션 스크립트는 다음 작업을 수행할 수 있습니다.

  • 새 앱 연결 패키지 개체를 만들고 필요한 경우 원래 MSIX 패키지 개체를 삭제할 수 있습니다.

  • 호스트 풀 및 MSIX 패키지와 연결된 애플리케이션 그룹에서 권한을 복사합니다.

  • 호스트 풀 및 MSIX 패키지의 위치 및 리소스 그룹을 복사합니다.

  • 로그 마이그레이션 작업.

필수 조건

마이그레이션 스크립트를 사용하려면 다음이 필요합니다.

  • MSIX 앱 연결과 함께 하나 이상의 MSIX 패키지가 추가된 유효성 검사 환경으로 구성된 호스트 풀입니다.

  • 호스트 풀에 할당된 데스크톱 가상화 기여자 Azure RBAC(역할 기반 액세스 제어) 역할이 있는 Azure 계정.

  • PowerShell을 사용하는 로컬 디바이스입니다. 최신 버전의 Az PowerShellMicrosoft Graph PowerShell SDK 가 설치되어 있는지 확인합니다. 특히 다음 모듈이 필요합니다.

    • Az.DesktopVirtualization
    • Az.Accounts
    • Az.Resources
    • Microsoft.Graph.Authentication

매개 변수

마이그레이션 스크립트와 함께 사용할 수 있는 매개 변수는 다음과 같습니다.

매개 변수 설명
MsixPackage 앱 연결 개체로 마이그레이션할 MSIX 패키지 개체입니다. 이 값은 파이프라인을 통해 전달할 수 있습니다.
PermissionSource 새 앱 연결 개체에 대한 사용 권한을 가져올 위치입니다. 기본적으로 권한이 부여되지 않습니다. 옵션은 다음과 같습니다.
  • DAG: 호스트 풀 및 MSIX 패키지와 연결된 데스크톱 애플리케이션 그룹
  • RAG: 호스트 풀 및 MSIX 패키지와 연결된 하나 이상의 RemoteApp 애플리케이션 그룹
두 옵션 모두 애플리케이션 그룹으로 구체적으로 범위가 지정된 모든 권한을 가진 모든 사용자 및 그룹에 권한을 부여합니다.
HostPoolsForNewPackage 새 앱 연결 개체를 연결할 호스트 풀의 리소스 ID입니다. 기본값은 호스트 풀이 아닙니다. 호스트 풀은 연결된 앱 연결 패키지와 동일한 위치에 있어야 합니다.
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 패키지를 마이그레이션하는 방법은 다음과 같습니다.

Important

다음 예제에서는 <placeholder> 값을 사용자 고유의 값으로 변경해야 합니다.

  1. 로컬 디바이스에서 PowerShell 프롬프트를 엽니다.

  2. PowerShell 스크립트 Migrate-MsixPackagesToAppAttach.ps1 를 다운로드하고 다음 명령을 실행하여 차단을 해제합니다.

    $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 패키지를 비활성으로 설정합니다.
  • 연결된 데스크톱 애플리케이션 그룹에서 사용 권한을 복사합니다.
  • JSON 형식으로 사용자 지정 파일 경로에 C:\MsixToAppAttach.log 로그 정보를 씁니다.
  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