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.
Installeer een toepassing via de catalogussjabloon voor virtuele machines.
Het installatiescript van de toepassing ondersteunt de volgende scenario's:
- De meest voorkomende use-case voor de installatie van de RemoteApp-app is het implementeren van externe toepassingen die toegankelijk zijn vanuit een Azure Virtual Destop.
- 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 container (artefacten) 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
Installatie
Opslagaccount instellen om Visual Studio Code te installeren
- 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 Vscode.exe en upload het installatieprogramma naar de app-map in het opslagaccount.
- 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' -Argument "/VERYSILENT /MERGETASKS=!runcode"
Sjabloon instellen
- 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
NextTabblad Basis:
- Voer voor
Virtual Machine namede naam van de virtuele machine in. -
Admin usernameAdmin passwordVoer de gebruikersnaam en het wachtwoord in die u gebruikt om u aan te melden bij uw virtuele machine.
- Voer voor
App-tabblad:
Voer voor
App folder URIde URI van de container in. Selecteer een artefact in de container, kopieer de URI, 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 Scriptinvoer van de naam (bijvoorbeeld:main.ps1) van het script waarmee de toepassing wordt geïnstalleerd.
Privécontainer:
Voor
App folder in private containerselecteert utrueom de rolreadertoegang te geven tot het opslagaccount via de virtuele machine.Haal voor
Storage container resource idde volgende drie onderdelen op:<storage-account-resource-id>+ '/blobServices/default/containers/' +<container-name>.- Als u
Storage container resource idwilt ophalen uit het opslagaccount, selecteert u 'Overzicht', selecteert u uiterst rechts 'JSON-weergave' en kopieert u de resource-id van het opslagaccount.
- Kopieer voor de containernaam de naam van de privécontainer die de artefacten bevat.
- Voorbeeld van resource-id van opslagcontainer:
subscriptions/000000a0-a0a0-000a-00a0-0000aaa0a000/resourceGroups/providers/Microsoft.Storage/storageAccounts/storage-account-example/blobServices/default/containers/container-name
- Als u
Als de parameter
AzCopy File URIwordt weergegeven, voegt u de URI toe aan de azcopy.exe vanuit de container- Selecteer het bestand en kopieer de URL:
Voorbeeld van privécontainerparameters:
- Selecteer
Review and Create, als validaties zijn geslaagd , selecteert uCreate. - 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-installatie
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')
- ('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 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
- Doorgaan met implementeren van sjabloon