Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Użyj szablonu katalogu usług, aby zainstalować i skonfigurować aplikację na maszynie wirtualnej RemoteApp.
Skrypty instalacji aplikacji obsługują następujące scenariusze:
- Najczęstszym zastosowaniem instalacji aplikacji RemoteApp jest wdrażanie zdalnych aplikacji, do których można uzyskać dostęp z Azure Virtual Desktop.
- Zainstaluj niezbędne składniki, takie jak oprogramowanie zabezpieczające i agenty monitorujące.
- Zmiany konfiguracji skryptu pod kątem zgodności lub konfiguracji aplikacji.
Note
To przykładowe wdrożenie jest przeznaczone tylko do celów demonstracyjnych i nie reprezentuje wszystkich najlepszych rozwiązań dotyczących administrowania siecią, systemami lub aplikacjami.
Prerequisites
Szablon usługi RemoteApp obsługuje wykonywanie skryptów w celu zautomatyzowania procesu instalowania aplikacji i konfigurowania maszyny wirtualnej. Przed rozpoczęciem korzystania z instalacji aplikacji RemoteApp należy upewnić się, że masz następujące elementy:
- Społeczność, enklawa, obciążenie i co najmniej jedna grupa zasobów obciążenia oraz uprawnienia do tworzenia zasobów wewnątrz grupy zasobów obciążenia.
- Włącz
Advancedtryb konserwacji dla enklawy, aby dodać zasoby Private Link do grupy zasobów zarządzanych enklawy. - Pojemnik z artefaktami w koncie magazynu.
- Społecznościowy punkt końcowy dla konta magazynu oraz opcjonalnie również dla istniejącej kopii programu AzCopy.exe.
- Kopia AzCopy.exe
- Pobierz narzędzie AzCopy.
- Przekaż instalator AzCopy do konta magazynu na tym samym poziomie co folder aplikacji.
- Struktura pliku:
- storage account - artifacts container - app folder - azcopy.exe
- Połączenia enklawy między wcześniej utworzonymi społecznościowymi punktami końcowymi a podsiecią enklawy.
Note
Jeśli konto magazynowe znajduje się w innej enklawie, utwórz punkt końcowy enklawy w enklawie, w której znajduje się konto magazynowe. Następnie utwórz połączenie z enklawą między enklawą tego konta magazynu a enklawą, w której instalujesz aplikację.
Wdrożone zasoby platformy Azure
- Przykładowa maszyna wirtualna usługi RemoteApp
- Disk
- Maszyna wirtualna z systemem Windows
- rozszerzenie maszyny wirtualnej Windows
Wdrożone oprogramowanie
- Windows
- Wybór aplikacji
Wdrażanie szablonu
Przygotuj pliki aplikacji
- Dodaj folder aplikacji do kontenera w koncie magazynu.
- Struktura pliku:
- artifacts container - app folder - app installer - main script to install app - (optional) additional scripts - (optional) azcopy.exe
- Struktura pliku:
- Pobierz potrzebny instalator aplikacji. W tym przykładzie pobierz Visual Studio Code i wgraj instalator do folderu aplikacji na koncie magazynu.
- Prześlij skrypt instalatora aplikacji
main.ps1, zgodny z wersją Visual Studio Code, którą dodano do folderu aplikacji na koncie magazynu:# Main PowerShell script that installs the application Start-Process 'C:\vscode\VSCodeSetup-x64-<version>.exe' -ArgumentList '/VERYSILENT /MERGETASKS=!runcode'
Konfigurowanie szablonu
- Na stronie przeglądu obciążenia wybierz pozycję
+Add an Azure Service.
- W polu
Servicewybierz pozycjęVirtual Machine.
Potwierdź wybór grupy zasobów, a następnie wybierz Następne.
Karta Podstawy:
- W polu
Virtual Machine namewprowadź nazwę maszyny wirtualnej. - W polach nazwa użytkownika administratora i hasło administratora wpisz nazwę użytkownika i hasło, których używasz do logowania się do maszyny wirtualnej.
- W polu
Karta Aplikacji:
W polu URI folderu aplikacji wpisz URI kontenera. Wybierz artefakt w kontenerze, skopiuj jego URI i usuń wszystko po nazwie folderu w URI.
Oryginalny URI Stały identyfikator URI https:// <storage-account>.blob.core.windows.net//<container-name><folder-name>/<script>.ps1<storage-account>https://.blob.core.windows.net/<container-name>/<folder-name>Przykład:
- storageaccountexample.blob.core.windows.net/artifacts/vscode
Dla głównego skryptu wpisz nazwę (na przykład
main.ps1) skryptu instalującego aplikację.
Kontener prywatny:
Dla folderu App w prywatnym kontenerze wybierz
true, aby przyznać tożsamości maszyny wirtualnej dostęp na poziomie konteneraStorage Blob Data Reader.Aby uzyskać identyfikator zasobu kontenera magazynu, połącz te trzy części:
<storage-account-resource-id>+/blobServices/default/containers/+<container-name>.- Aby uzyskać identyfikator zasobu konta magazynu, z konta magazynu należy wybrać Przegląd, w prawym rogu JSON View i skopiować identyfikator zasobu konta magazynu.
- W polu nazwa kontenera skopiuj nazwę prywatnego kontenera, który przechowuje artefakty.
- Przykładowy identyfikator zasobu kontenera magazynu:
/subscriptions/000000a0-a0a0-000a-00a0-0000aaa0a000/resourceGroups/resource-group-example/providers/Microsoft.Storage/storageAccounts/storage-account-example/blobServices/default/containers/container-name
Jeśli wyświetlony jest parametr AzCopy File URI, wpisz URI do
azcopy.exez kontenera.- Wybierz plik i skopiuj jego adres URL:
Przykładowe parametry prywatnego kontenera:
- Wybierz pozycję Przejrzyj i utwórz. Jeśli weryfikacja zakończy się pomyślnie, wybierz pozycję Utwórz.
- Po wdrożeniu zasobów sprawdź, czy aplikacja jest zainstalowana na maszynie wirtualnej aplikacji, łącząc się z maszyną wirtualną aplikacji. Nawiązywanie połączenia z maszyną wirtualną aplikacji
Zainstaluj WinGet i dodatkowe aplikacje
Struktura folderów:
- 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')
- Pobierz instalatory i prześlij je do folderu winget w kontenerze magazynu
- Pakiet programu WinGet
MSIX(Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle) - biblioteka interfejsu użytkownika systemu Windows (Microsoft.UI.Xaml.2.8.x64.appx)
- Pakiet programu WinGet
- Tworzenie i przekazywanie skryptów
- 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
- Przejdź do Skonfiguruj szablon.