Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Verwenden Sie die Virtual-Machine-Servicekatalogvorlage, um eine Anwendung auf einer RemoteApp-virtuellen Maschine zu installieren und zu konfigurieren.
Das Anwendungsinstallationsskripting unterstützt die folgenden Szenarien:
- Der häufigste Anwendungsfall für die Installation von RemoteApp-Anwendungen ist die Bereitstellung von entfernten Anwendungen, auf die Sie von einem Azure Virtual Desktop zugreifen können.
- Installieren Sie Ihre erforderlichen Komponenten, z. B. Cybersicherheits- und Überwachungs-Agents.
- Änderungen an der Skriptkonfiguration zur Compliance oder Anwendungskonfiguration.
Note
Diese Beispielbereitstellung dient nur zu Demozwecken und stellt nicht alle bewährten Methoden für die Verwaltung von Netzwerken, Systemen oder Anwendungen dar.
Voraussetzungen
Die RemoteApp-Vorlage unterstützt skripting, um den Prozess der Installation von Anwendungen zu automatisieren und den virtuellen Computer zu konfigurieren. Bevor Sie mit der Verwendung der RemoteApp-App-Installation beginnen können, müssen Sie folgendes sicherstellen:
- Eine Community, Enklave, Workload und mindestens eine Workload-Ressourcengruppe und Berechtigungen zum Erstellen von Ressourcen innerhalb der Workload-Ressourcengruppe.
- Aktivieren Sie
Advancedden Wartungsmodus für Ihre Enklave, damit Sie die Private Link Ressourcen zu Ihrer verwalteten Ressourcengruppe hinzufügen können. - Ein Artefakt-Container im Speicherkonto.
- Ein Community-Endpunkt für das Storage-Konto und optional auch für eine vorhandene Kopie von AzCopy.exe.
- Eine Kopie von AzCopy.exe
- Laden Sie AzCopy herunter.
- Laden Sie das AzCopy-Installationsprogramm auf das Speicherkonto auf derselben Ebene wie Ihr App-Ordner hoch.
- Dateistruktur:
- storage account - artifacts container - app folder - azcopy.exe
- Enklavenverbindungen zwischen den zuvor hergestellten Communityendpunkten und dem Enklavensubnetz.
Note
Wenn sich das Speicherkonto in einer anderen Enklave befindet, erstellen Sie einen Enklavenendpunkt in der Enklave mit dem Speicherkonto. Erstellen Sie dann eine Enklaveverbindung zwischen dieser Speicherkonto-Enklave und der Enklave, in der Sie die Anwendung installieren.
Bereitgestellte Azure-Ressourcen
- RemoteApp-Beispiel für einen virtuellen Computer
- Datenträger
- Virtueller Windows-Computer
- Windows-Erweiterung für virtuelle Computer
Bereitgestellte Software
- Windows
- Anwendung Ihrer Wahl
Implementieren der Vorlage
Anwendungsdateien vorbereiten
- Fügen Sie dem Container im Speicherkonto App-Ordner hinzu.
- Dateistruktur:
- artifacts container - app folder - app installer - main script to install app - (optional) additional scripts - (optional) azcopy.exe
- Dateistruktur:
- Laden Sie das benötigte Anwendungsinstallationsprogramm herunter. In diesem Beispiel laden Sie Visual Studio Code herunter und laden Sie den Installer in den Storage Account App-Ordner hoch.
- Laden Sie das
main.ps1Installer-Skript hoch, das mit der Version von Visual Studio Code kompatibel ist, die Sie dem App-Ordner des Speicherkontos hinzugefügt haben:# Main PowerShell script that installs the application Start-Process 'C:\vscode\VSCodeSetup-x64-<version>.exe' -ArgumentList '/VERYSILENT /MERGETASKS=!runcode'
Konfigurieren der Vorlage
- Wählen Sie auf der Seite "Workloadübersicht" die Option
+Add an Azure Serviceaus.
- Wählen Sie
ServicefürVirtual Machineaus.
Bestätigen Sie die Auswahl der Ressourcengruppe und wählen Sie dann Weiter aus.
Registerkarte "Grundlagen":
- Für
Virtual Machine namegeben Sie den Namen der virtuellen Maschine ein. - Für den Admin-Benutzernamen und das Admin-Passwort geben Sie den Benutzernamen und das Passwort ein, mit dem Sie sich auf Ihrer virtuellen Maschine anmelden.
- Für
App-Tab:
Für App-Ordner URI geben Sie die URI für den Container ein. Wählen Sie ein Artefakt im Container aus, kopieren Sie dessen URI und entfernen Sie alles nach dem Ordnernamen im URI.
Ursprünglicher URI Feste 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>Beispiel:
- storageaccountexample.blob.core.windows.net/artifacts/vscode
Für Main Script geben Sie den Namen (zum Beispiel
main.ps1) des Skripts ein, das die Anwendung installiert.
Privater Container:
Für den App-Ordner im privaten Container wählen Sie
trueaus, um der Identität des virtuellen Computers Zugriff auf ContainerebeneStorage Blob Data Readerzu gewähren.Für Storage Container resource id kombinieren Sie diese drei Teile:
<storage-account-resource-id>+/blobServices/default/containers/+<container-name>.- Um die Ressourcen-ID des Speichercontainers zu erhalten, wählen Sie im Speicherkonto Overview aus, wählen Sie JSON View in der ganz rechten Ecke aus und kopieren Sie die Ressourcen-ID des Speicherkontos.
- Kopieren Sie für den Containernamen den Namen des privaten Containers, der die Artefakte enthält.
- Beispiel für eine Speichercontainerressourcen-ID:
/subscriptions/a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1/resourceGroups/resource-group-example/providers/Microsoft.Storage/storageAccounts/storage-account-example/blobServices/default/containers/container-name
Wenn der Parameter AzCopy File URI angezeigt wird, fügen Sie den URI zum
azcopy.exeaus dem Container hinzu.- Wählen Sie die Datei aus, und kopieren Sie die URL:
Beispielparameter für private Container:
- Klicken Sie auf Überprüfen und erstellen. Wenn die Überprüfung erfolgreich ist, wählen Sie "Erstellen" aus.
- Nachdem Ressourcen bereitgestellt wurden, überprüfen Sie, ob die App auf dem virtuellen Anwendungscomputer installiert ist, indem Sie eine Verbindung mit dem virtuellen Anwendungscomputer herstellen. Herstellen einer Verbindung mit dem virtuellen Anwendungscomputer
WinGet und weitere Anwendungen installieren
Ordnerstruktur:
- 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')
- Laden Sie Installer herunter, und laden Sie sie in den Winget-Ordner im Speichercontainer hoch.
- WinGet-Paket
MSIX(Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle) - Windows-UI-Bibliothek (Microsoft. UI. Xaml.2.8.x64.appx)
- WinGet-Paket
- Erstellen und Hochladen von Skripts
- 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
- Fahren Sie mit Die Vorlage konfigurieren fort.