Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Gebruik de Virtual Machine servicecatalogustemplate om een applicatie te installeren en te configureren op een RemoteApp virtuele machine.
Het installatiescript van de toepassing ondersteunt de volgende scenario's:
- Het meest voorkomende gebruiksscenario voor RemoteApp-applicatieinstallatie is het deployen van externe applicaties die je kunt bereiken via Azure Virtual Desktop.
- Installeer uw vereisten, zoals cyberbeveiliging en bewakingsagenten.
- Wijzigingen in scriptconfiguratie voor naleving of installatie van toepassingen.
Note
Deze voorbeeldimplementatie is alleen bedoeld voor demodoeleinden en vertegenwoordigt niet alle aanbevolen procedures voor netwerk-, systemen- of toepassingsbeheer.
Prerequisites
De RemoteApp-sjabloon ondersteunt scripting om het installatieproces van toepassingen te automatiseren en de virtuele machine te configureren. Voordat u de installatie van de RemoteApp-app kunt gaan gebruiken, moet u ervoor zorgen dat u het volgende hebt:
- Een community, enclave, workload en ten minste één workloadresourcegroep en machtigingen voor het maken van resources in de workloadresourcegroep.
- Schakel
Advancedde onderhoudsmodus in voor uw enclave, zodat u de Private Link resources kunt toevoegen aan uw beheerde enclaveresourcegroep. - Een artefactencontainer binnen het opslagaccount.
- Een openbaar eindpunt naar het opslagaccount en optioneel naar een bestaande kopie van AzCopy.exe.
- Een kopie van AzCopy.exe
- AzCopy downloaden.
- Upload het AzCopy-installatieprogramma naar het opslagaccount op hetzelfde niveau als uw app-map.
- Bestandsstructuur:
- storage account - artifacts container - app folder - azcopy.exe
- Enclaveverbindingen tussen de eerder gemaakte community-eindpunten en het enclavesubnet.
Note
Als het opslagaccount zich in een andere enclave bevindt, maakt u een enclave-eindpunt in de enclave met het opslagaccount. Maak vervolgens een enclaveverbinding tussen die opslagaccount-enclave en de enclave waar u de toepassing installeert.
Geïmplementeerde Azure-resources
- Voorbeeld van een virtuele machine van RemoteApp
- schijf
- Windows virtuele machine
- Windows-extensie voor virtuele machines
Software geïmplementeerd
- Windows
- Toepassing van uw keuze
De sjabloon implementeren
Applicatiebestanden voorbereiden
- Voeg de app-map toe aan de container in het opslagaccount.
- Bestandsstructuur:
- artifacts container - app folder - app installer - main script to install app - (optional) additional scripts - (optional) azcopy.exe
- Bestandsstructuur:
- Download het toepassingsinstallatieprogramma dat u nodig hebt. Download in dit voorbeeld Visual Studio Code en upload het installatieprogramma naar de app-map van het storageaccount.
- Upload het installatiescript van de
main.ps1toepassing dat compatibel is met de versie van Visual Studio Code die u hebt toegevoegd aan de app-map van het opslagaccount:# Main PowerShell script that installs the application Start-Process 'C:\vscode\VSCodeSetup-x64-<version>.exe' -ArgumentList '/VERYSILENT /MERGETASKS=!runcode'
De sjabloon configureren
- Selecteer op de overzichtspagina van de werkbelasting de optie
+Add an Azure Service.
- Voor
Service, selecteerVirtual Machine.
Bevestig de selectie van de resourcegroep en selecteer vervolgens Volgende.
Tabblad Basis:
- Voer voor
Virtual Machine namede naam van de virtuele machine in. - Voer voor Beheerdersgebruikersnaam en Beheerderswachtwoord de gebruikersnaam en het wachtwoord in die je gebruikt om je aan te melden bij je virtuele machine.
- Voer voor
App-tabblad:
Voor de App-map-URI voer je de URI naar de container in. Selecteer een artefact binnen de container, kopieer de URI ervan en verwijder alles na de mapnaam in de URI.
Oorspronkelijke URI Gecorrigeerde URI <storage-account>https://.blob.core.windows.net/<container-name>/<folder-name>/<script>.ps1<storage-account>https://.blob.core.windows.net/<container-name>/<folder-name>Voorbeeld:
- storageaccountexample.blob.core.windows.net/artifacts/vscode
Voor Main Script, voer je de naam in (bijvoorbeeld
main.ps1) van het script dat de applicatie installeert.
Privécontainer:
Voor de App-map in een private container selecteer
trueom de identiteit van de virtuele machine toegang op containerniveauStorage Blob Data Readerte verlenen.Combineer voor Storage container resource id deze drie delen:
<storage-account-resource-id>+/blobServices/default/containers/+<container-name>.- Om de Storage container resource id te krijgen, selecteer je vanuit het opslagaccount Overzicht, selecteer JSON View helemaal rechts en kopieer je de resource ID van het storage-account.
- Kopieer voor de containernaam de naam van de privécontainer die de artefacten bevat.
- Voorbeeld van resource-id van opslagcontainer:
/subscriptions/a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1/resourceGroups/resource-group-example/providers/Microsoft.Storage/storageAccounts/storage-account-example/blobServices/default/containers/container-name
Als de parameter AzCopy File URI wordt weergegeven, voer dan de URI naar
azcopy.exevanuit de container in.- Selecteer het bestand en kopieer de URL:
Voorbeeld van privécontainerparameters:
- Selecteer Controleren en maken. Als de validatie is geslaagd, selecteert u Maken.
- Zodra resources zijn geïmplementeerd, controleert u of de app is geïnstalleerd op de virtuele toepassingsmachine door verbinding te maken met de virtuele toepassingsmachine. Verbinding maken met de virtuele toepassingsmachine
WinGet en extra applicaties installeren
Mapstructuur:
- 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')
- script to restart the virtual machine ('restart.ps1')
- Download de installatieprogramma's en upload deze naar de map winget in de opslagcontainer
- WinGet-bundel
MSIX(Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle) - Windows UI-bibliotheek (Microsoft. UI. Xaml.2.8.x64.appx)
- WinGet-bundel
- Scripts maken en uploaden
- 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 restart script $rebootScriptPath = "C:\winget\restart.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
- Ga verder met het configureren van het sjabloon.