Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Installez une application via un modèle de catalogue de services de machine virtuelle.
Le script d’installation d’application prend en charge les scénarios suivants :
- Le cas d’usage le plus courant pour l’installation de l’application RemoteApp consiste à déployer des applications distantes accessibles à partir d’un Azure Virtual Destop.
- Installez vos prérequis, tels que les agents de cybersécurité et de surveillance.
- Modifications de configuration de script pour la conformité ou la configuration de l’application.
Note
Cet exemple de déploiement est uniquement à des fins de démonstration et ne représente pas toutes les meilleures pratiques pour l’administration du réseau, des systèmes ou des applications.
Prerequisites
Le modèle RemoteApp prend en charge les scripts pour automatiser le processus d’installation des applications et la configuration de la machine virtuelle. Avant de commencer à utiliser l’installation de l’application RemoteApp, vous devez vous assurer que vous disposez des éléments suivants :
- Une communauté, une enclave, une charge de travail et au moins un groupe de ressources de charge de travail et des autorisations pour créer des ressources à l’intérieur du groupe de ressources de charge de travail.
- Activez
Advancedle mode de maintenance pour votre enclave afin de pouvoir ajouter les ressources Private Link à votre groupe de ressources géré par enclave. - Conteneur (artefacts) dans le compte de stockage.
- Un point de terminaison communautaire vers le compte de stockage et, éventuellement, vers une copie existante d’AzCopy.exe.
- Copie de AzCopy.exe
- Téléchargez AzCopy.
- Chargez le programme d’installation AzCopy sur le compte de stockage au même niveau que le dossier de votre application.
- Structure de fichiers :
- storage account - artifacts container - app folder - azcopy.exe
- Connexions d’enclave entre les points de terminaison communautaires créés précédemment et le sous-réseau d’enclave.
Note
Si le compte de stockage se trouve dans une autre enclave, créez un point de terminaison d’enclave dans l’enclave avec le compte de stockage. Créez ensuite une connexion d’enclave entre cette enclave de compte de stockage et l’enclave où vous installez l’application.
ressources Azure déployées
- Exemple de machine virtuelle RemoteApp
- Disque
- machine virtuelle Windows
- extension de machine virtuelle Windows
Logiciel déployé
- Windows
- Application de votre choix
Installation
Configurer le compte de stockage pour installer Visual Studio Code
- Ajoutez un dossier d’application au conteneur dans le compte de stockage.
- Structure de fichiers :
- artifacts container - app folder - app installer - main script to install app - (optional) additional scripts - (optional) azcopy.exe
- Structure de fichiers :
- Téléchargez le programme d’installation de l’application dont vous avez besoin. Dans cet exemple , téléchargezVscode.exe et chargez le programme d’installation dans le dossier d’application du compte de stockage.
- Téléchargez le script d’installation de l’application
main.ps1compatible avec la version de Visual Studio Code que vous avez ajoutée dans le dossier d’application du compte de stockage :# Main powershell script that installs the application Start-Process 'C:/vscode/VSCodeSetup-x64-{version}.exe' -Argument "/VERYSILENT /MERGETASKS=!runcode"
Modèle d’installation
- Dans la page vue d’ensemble de la charge de travail, sélectionnez
+Add an Azure Service.
- Pour
Service, sélectionnezVirtual Machine.
Confirmer la sélection du groupe de ressources et sélectionner
NextOnglet Informations de base :
- Pour
Virtual Machine name, entrez le nom de la machine virtuelle. - Pour
Admin usernameetAdmin password, entrez le nom d’utilisateur et le mot de passe que vous utilisez pour vous connecter à votre machine virtuelle.
- Pour
Onglet de l’application :
Pour
App folder URI, entrez l’URI dans le conteneur. Sélectionnez un artefact dans le conteneur, copiez son URI, supprimez tout après le nom du dossier dans l’URI.
URI d’origine URI fixe https:// <storage-account>.blob.core.windows.net/<container-name>/<folder-name>/<script>.ps1<storage-account>https://.blob.core.windows.net/<container-name>/<folder-name>Exemple :
- storageaccountexample.blob.core.windows.net/artifacts/vscode
Pour
Main Scriptentrer le nom (ex :main.ps1) du script qui installe l’application.
Conteneur privé :
Pour
App folder in private container, sélectionneztruepour autoriser le rôlereaderà accéder au compte de stockage via la machine virtuelle.Pour
Storage container resource idobtenir les trois parties suivantes :<storage-account-resource-id>+ '/blobServices/default/containers/' +<container-name>.- Pour obtenir
Storage container resource id, dans le compte de stockage, sélectionnez « Vue d’ensemble », puis « Vue JSON » dans le coin à l’extrême droite, et copiez l’ID de ressource du compte de stockage.
- Pour le nom du conteneur, copiez le nom du conteneur privé qui contient les artefacts.
- Exemple d’ID de ressource de conteneur de stockage :
subscriptions/000000a0-a0a0-000a-00a0-0000aaa0a000/resourceGroups/providers/Microsoft.Storage/storageAccounts/storage-account-example/blobServices/default/containers/container-name
- Pour obtenir
Si le paramètre
AzCopy File URIest affiché, ajoutez l’URI au azcopy.exe à partir du conteneur- Sélectionnez le fichier, puis copiez son URL :
Exemple de paramètres de conteneur privé :
- Sélectionnez
Review and Create, si les validations réussissent, sélectionnezCreate. - Une fois les ressources déployées, vérifiez si l’application est installée sur une machine virtuelle d’application en vous connectant à la machine virtuelle d’application. Se connecter à la machine virtuelle d’application
Installation de WinGet
Structure de dossiers :
- 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')
- Téléchargez les programmes d’installation et chargez-les dans le dossier winget dans le conteneur de stockage
- Bundle WinGet
MSIX(Microsoft. DesktopAppInstaller_8wekyb3d8bbwe.msixbundle) - Bibliothèque d’interface utilisateur Windows (Microsoft. Interface utilisateur. Xaml.2.8.x64.appx)
- Bundle WinGet
- Créer et charger des scripts
- 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 - 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 - restart.ps1
Restart-Computer -Force
- main.ps1
- Passer au modèle de déploiement