Penginstalan aplikasi menggunakan RemoteApp Virtual Machine

Instal aplikasi melalui templat katalog layanan Komputer Virtual.

Skrip penginstalan aplikasi mendukung skenario berikut:

  • Kasus penggunaan yang paling umum untuk penginstalan aplikasi RemoteApp adalah menyebarkan aplikasi jarak jauh yang dapat diakses dari Azure Virtual Destop.
  • Instal prasyarat Anda seperti keamanan cyber dan agen pemantauan.
  • Perubahan konfigurasi skrip untuk kepatuhan atau penyiapan aplikasi.

Note

Penyebaran sampel ini hanya untuk tujuan demo dan tidak mewakili semua praktik terbaik untuk administrasi jaringan, sistem, atau aplikasi.

Prasyarat

Templat RemoteApp mendukung pembuatan skrip untuk mengotomatiskan proses penginstalan aplikasi dan mengonfigurasi Komputer Virtual. Sebelum Anda dapat mulai menggunakan penginstalan aplikasi RemoteApp, Anda perlu memastikan bahwa Anda memiliki:

  • Komunitas, enklave, beban kerja, dan setidaknya satu grup sumber daya beban kerja dan izin untuk membuat sumber daya di dalam grup sumber daya beban kerja.
  • Aktifkan Advancedmode pemeliharaan untuk enklave Anda sehingga Anda dapat menambahkan sumber daya Private Link ke grup sumber daya terkelola enklave Anda.
  • Kontainer (artefak) dalam akun penyimpanan.
  • titik akhir komunitas ke akun penyimpanan dan, secara opsional, ke salinan AzCopy.exe yang sudah ada.
  • Salinan AzCopy.exe
    • Unduh AzCopy.
    • Unggah penginstal AzCopy ke akun penyimpanan pada tingkat yang sama dengan folder aplikasi Anda.
    • Struktur File:
          - storage account
              - artifacts container
                  - app folder
                  - azcopy.exe 
      
      Cuplikan layar memperlihatkan struktur organisasi kontainer penyimpanan dengan beberapa folder aplikasi dalam kontainer yang sama dan menggunakan salinan AzCopy.exeyang sama.
  • Koneksi enklave antara endpoint komunitas yang telah dibuat sebelumnya dan subnet enklave.

Note

Jika akun penyimpanan berada di enklave yang berbeda, buat titik akhir enklave di enklave dengan akun penyimpanan. Kemudian buat koneksi enklave antara enklave akun penyimpanan tersebut dan enklave tempat Anda menginstal aplikasi.

Sumber Daya Azure Disebarkan

  • Contoh mesin virtual RemoteApp
    • Disk
    • Mesin Virtual Windows
    • Ekstensi Mesin Virtual Windows

Perangkat Lunak Diterapkan

  • Windows
  • Aplikasi pilihan Anda

Installation

Menyiapkan Akun Penyimpanan untuk menginstal Visual Studio Code

  1. Tambahkan folder aplikasi ke kontainer dalam akun penyimpanan. Diagram memperlihatkan metode penginstalan dalam enklave yang sama. Diagram memperlihatkan metode penginstalan di luar enklave yang berisi akun penyimpanan.
    • Struktur File:
          - artifacts container
              - app folder
                  - app installer
                  - main script to install app
                  - (optional) additional scripts
                  - (optional) azcopy.exe
      
  2. Unduh alat penginstal aplikasi yang Anda butuhkan. Dalam contoh ini unduh Vscode.exe dan unggah alat penginstal ke folder aplikasi akun penyimpanan.
  3. main.ps1 Unggah skrip penginstal aplikasi yang kompatibel dengan versi Visual Studio Code Anda tambahkan ke folder aplikasi akun penyimpanan:
        # Main powershell script that installs the application
    
        Start-Process 'C:/vscode/VSCodeSetup-x64-{version}.exe' -Argument "/VERYSILENT /MERGETASKS=!runcode"
    

Templat Penyetelan

  1. Pada halaman gambaran umum beban kerja, pilih +Add an Azure Service.

Cuplikan layar memperlihatkan halaman gambaran umum beban kerja.

  1. Untuk Service, pilih Virtual Machine.

Cuplikan layar memperlihatkan Komputer Virtual dipilih dari daftar katalog layanan.

  1. Konfirmasikan pilihan grup sumber daya dan pilih Next

  2. Tab Dasar:

    • Untuk Virtual Machine name, masukkan nama Komputer Virtual.
    • Untuk Admin username dan Admin password, masukkan nama pengguna dan kata sandi yang Anda gunakan untuk masuk ke Komputer Virtual Anda.
  3. Tab Aplikasi:

    • Untuk App folder URI, masukkan URI ke kontainer. Pilih artefak dalam kontainer, salin URI-nya, hapus semuanya setelah nama folder di URI. Cuplikan layar memperlihatkan URI folder aplikasi untuk digunakan dalam penyebaran ini.

      URI asli URI Tetap
      https://<storage-account>.blob.core.windows.net/<container-name>/<folder-name>/<script>.ps1 <storage-account>https://.blob.core.windows.net/<container-name>/<folder-name>
    • Contoh:

      • storageaccountexample.blob.core.windows.net/artifacts/vscode
    • Untuk Main Script memasukkan nama (misalnya: main.ps1) dari skrip yang menginstal aplikasi.

    Cuplikan layar memperlihatkan tab Aplikasi selama penyebaran Komputer Virtual.

Kontainer Pribadi:

  1. Untuk App folder in private container, pilih true untuk mengizinkan akses peran reader ke akun penyimpanan melalui Mesin Virtual.

  2. Untuk Storage container resource id, dapatkan tiga bagian berikut: <storage-account-resource-id> + '/blobServices/default/containers/' + <container-name>.

    • Untuk mendapatkan Storage container resource id dari akun penyimpanan, pilih "Ringkasan", lalu pilih "Tampilan JSON" di sudut paling kanan, kemudian salin ID sumber daya dari akun penyimpanan.

    Tangkapan layar ID sumber daya akun yang digunakan dalam deployment ini.

    • Untuk nama kontainer, salin nama kontainer privat yang menyimpan artefak.
    • Contoh ID sumber daya kontainer penyimpanan: subscriptions/000000a0-a0a0-000a-00a0-0000aaa0a000/resourceGroups/providers/Microsoft.Storage/storageAccounts/storage-account-example/blobServices/default/containers/container-name
  3. Jika parameter AzCopy File URI ditampilkan, tambahkan URI ke azcopy.exe dari kontainer

    • Pilih file, dan salin URL-nya:

    Cuplikan layar memperlihatkan struktur organisasi kontainer penyimpanan dengan file azcopy.exe.

    Cuplikan layar memperlihatkan URI untuk file azcopy.exe.

Contoh Parameter Kontainer Privat:

Cuplikan layar memperlihatkan parameter tab Aplikasi selesai.

  1. Pilih Review and Create, jika validasi lolos, pilih Create.
  2. Setelah sumber daya diterapkan, periksa apakah aplikasi telah terinstal pada Komputer Virtual Aplikasi dengan menyambung ke Komputer Virtual Aplikasi. Hubungkan ke Mesin Virtual Aplikasi

Penginstalan WinGet

Struktur Folder:

- artifacts container
    - WinGet app folder ('winget')
        - WinGet installer ('Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle')
        - Windows UI Library ('Microsoft.UI.Xaml.2.8.x64.appx')
        - main script to schedule install ('main.ps1')
        - script to install and schedule reboot('install_winget.ps1')
        - ('restart.ps1')

Cuplikan layar yang menunjukkan artefak yang diperlukan untuk menginstal winget ke RemoteApp untuk kemudian menginstal dan mengelola aplikasi lain menggunakan winget.

  1. Unduh penginstal dan unggah ke folder winget dalam kontainer penyimpanan
  2. Membuat dan mengunggah skrip
    1. main.ps1
      # This script creates and runs a scheduled task to install the appx package and msix bundle with elevated privileges
      
      $installScriptPath = "C:\winget\install_winget.ps1"
      
      # Create a scheduled task action to run the installation script with elevated permissions
      $taskAction = New-ScheduledTaskAction -Execute 'powershell.exe' -Argument "-ExecutionPolicy Bypass -File $installScriptPath"
      
      # Set the task to start 30 seconds from now
      $taskTrigger = New-ScheduledTaskTrigger -Once -At (Get-Date).AddSeconds(30)
      $taskPrincipal = New-ScheduledTaskPrincipal -UserId "SYSTEM" -LogonType ServiceAccount -RunLevel Highest
      
      # Register the scheduled task
      Register-ScheduledTask -TaskName "InstallWinget" -Action $taskAction -Trigger $taskTrigger -Principal $taskPrincipal
      
    2. install_winget.ps1
      Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass -Force
      
      Start-Process -FilePath "DISM.exe" -ArgumentList "/Online /Add-ProvisionedAppxPackage /PackagePath:C:\winget\Microsoft.UI.Xaml.2.8.x64.appx /SkipLicense" -NoNewWindow -Wait
      Start-Process -FilePath "DISM.exe" -ArgumentList "/Online /Add-ProvisionedAppxPackage /PackagePath:C:\winget\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle /SkipLicense" -NoNewWindow -Wait
      
      $wingetDir = 'C:\Program Files\WindowsApps\Microsoft.DesktopAppInstaller_1.23.1791.0_x64__8wekyb3d8bbwe'
      $currentPath = [System.Environment]::GetEnvironmentVariable("Path", [System.EnvironmentVariableTarget]::Machine)
      [System.Environment]::SetEnvironmentVariable("Path", "$currentPath;$wingetDir", [System.EnvironmentVariableTarget]::Machine)
      
      # Schedule the reboot script
      $rebootScriptPath = "C:\winget\reboot.ps1"
      $taskAction = New-ScheduledTaskAction -Execute 'powershell.exe' -Argument "-ExecutionPolicy Bypass -File $rebootScriptPath"
      
      # Set the task to start 30 seconds from now
      $taskTrigger = New-ScheduledTaskTrigger -Once -At ((Get-Date).AddSeconds(30))
      $taskPrincipal = New-ScheduledTaskPrincipal -UserId "SYSTEM" -LogonType ServiceAccount -RunLevel Highest
      
      # Register the scheduled task
      Register-ScheduledTask -TaskName "Reboot" -Action $taskAction -Trigger $taskTrigger -Principal $taskPrincipal
      
    3. restart.ps1
      Restart-Computer -Force
      
  3. Lanjutkan ke Sebarkan Templat