Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Använd mall för Virtual Machine-tjänstekatalogen för att installera och konfigurera en applikation på en virtuell RemoteApp-maskin.
Skriptet för programinstallation stöder följande scenarier:
- Det vanligaste användningsområdet för installation av RemoteApp-applikationer är att distribuera fjärrapplikationer som du kan komma åt från Azure Virtual Desktop.
- Installera nödvändiga komponenter, till exempel agenter för cybersäkerhet och övervakning.
- Skriptkonfigurationsändringar för kompatibilitet eller programkonfiguration.
Note
Den här exempeldistributionen är bara i demosyfte och representerar inte alla metodtips för administration av nätverk, system eller program.
Förutsättningar
RemoteApp-mallen stöder skript för att automatisera processen med att installera program och konfigurera den virtuella datorn. Innan du kan börja använda installationen av RemoteApp-appen måste du kontrollera att du har:
- En community, enklav, arbetsbelastning, minst en resursgrupp för arbetsbelastningen samt behörighet att skapa resurser i resursgruppen för arbetsbelastningen.
- Aktivera
Advancedunderhållsläge för enklaven så att du kan lägga till Private Link resurser i din enklaverhanterade resursgrupp. - En artefaktbehållare inom lagringskontot.
- En community-slutpunkt till lagringskontot och eventuellt till en befintlig kopia av AzCopy.exe.
- En kopia av AzCopy.exe
- Ladda ned AzCopy.
- Ladda upp AzCopy installationsprogrammet till lagringskontot på samma nivå som din appmapp.
- Filstruktur:
- storage account - artifacts container - app folder - azcopy.exe
- Enklaveranslutningar mellan de tidigare skapade communityslutpunkterna och enklavens undernät.
Note
Om lagringskontot finns i en annan enklav skapar du en enklavslutpunkt i enklaven med lagringskontot. Skapa sedan en enklavanslutning mellan den lagringskonto enklaven och enklaven där du installerar programmet.
Azure-resurser har distribuerats
- Virtuell dator för RemoteApp-exempel
- Disk
- Virtuell Windows-dator
- Windows tillägg för virtuella datorer
Programvara distribuerad
- Windows
- Valfritt program
Använd mallen
Förbered ansökningsfiler
- Lägg till appmappen i containern i lagringskontot.
- Filstruktur:
- artifacts container - app folder - app installer - main script to install app - (optional) additional scripts - (optional) azcopy.exe
- Filstruktur:
- Ladda ned programinstallationsprogrammet som du behöver. I detta exempel, ladda ner Visual Studio Code och ladda upp installationsfilen till app-mappen för lagringskontot.
-
main.ps1Ladda upp programinstallationsskriptet som är kompatibelt med den version av Visual Studio Code som du lade till i mappen för lagringskontoappen:# Main PowerShell script that installs the application Start-Process 'C:\vscode\VSCodeSetup-x64-<version>.exe' -ArgumentList '/VERYSILENT /MERGETASKS=!runcode'
Konfigurera mallen
- På översiktssidan för arbetsbelastningen väljer du
+Add an Azure Service.
- För
Serviceväljer duVirtual Machine.
Bekräfta resursgruppsvalet och välj sedan Nästa.
Fliken Grundläggande:
- För
Virtual Machine name, ange namnet på den virtuella datorn. - För administratörsanvändarnamn och administratörslösenord, ange användarnamnet och lösenordet du använder för att logga in på din virtuella maskin.
- För
Appflik:
För App Folder URI, ange URI:n till containern. Välj en artefakt i containern, kopiera dess URI och ta bort allt efter mappnamnet i URI:n.
Ursprunglig URI Fast 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>Exempel:
- storageaccountexample.blob.core.windows.net/artifacts/vscode
För huvudskriptet, ange namnet (till exempel
main.ps1) på skriptet som installerar applikationen.
Privat container:
För App-mappen i privat container, välj
trueför att ge den virtuella maskinens identitet åtkomst på containernivåStorage Blob Data Reader.För Storage container resource id, kombinera dessa tre delar:
<storage-account-resource-id>+/blobServices/default/containers/+<container-name>.- För att få Storage container resource id, välj från lagringskontot Översikt, välj JSON View längst till höger och kopiera lagringskontots resurs-ID.
- För containernamnet kopierar du namnet på den privata container som innehåller artefakterna.
- Exempel på resurs-ID för lagringscontainer:
/subscriptions/000000a0-a0a0-000a-00a0-0000aaa0a000/resourceGroups/resource-group-example/providers/Microsoft.Storage/storageAccounts/storage-account-example/blobServices/default/containers/container-name
Om parametern AzCopy File URI visas, ange URI:n för
azcopy.exefrån containern.- Välj filen och kopiera dess URL:
Exempel på privata containerparametrar:
- Välj Granska och skapa. Om verifieringen godkänns väljer du Skapa.
- När resurserna har distribuerats kontrollerar du om appen är installerad på programmets virtuella dator genom att ansluta till den virtuella programdatorn. Ansluta till den virtuella programdatorn
Installera WinGet och ytterligare applikationer
Mappstrukturen:
- 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')
- Ladda ned installationsprogram och ladda upp dem till winget-mappen i lagringscontainern
- WinGet-paket
MSIX(Microsoft. DesktopAppInstaller_8wekyb3d8bbwe.msixbundle) - Windows UI Library (Microsoft. UI. Xaml.2.8.x64.appx)
- WinGet-paket
- Skapa och ladda upp skript
- 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
- Gå vidare till Konfigurera mallen.