Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Instale um aplicativo por meio do modelo de catálogo de serviços de Máquina Virtual.
O script de instalação do aplicativo dá suporte aos seguintes cenários:
- O caso de uso mais comum para a instalação do aplicativo RemoteApp é implantar aplicativos remotos que podem ser acessados de uma Azure Destop Virtual.
- Instale seus pré-requisitos, como agentes de segurança cibernética e monitoramento.
- Alterações de configuração de script para conformidade ou configuração de aplicativo.
Note
Essa implantação de exemplo é apenas para fins de demonstração e não representa todas as práticas recomendadas para administração de rede, sistemas ou aplicativos.
Pré-requisitos
O modelo RemoteApp dá suporte ao script para automatizar o processo de instalação de aplicativos e configuração da Máquina Virtual. Antes de começar a usar a instalação do aplicativo RemoteApp, você precisa ter certeza de que tem:
- Uma comunidade, um enclave, uma carga de trabalho e pelo menos um grupo de recursos da carga de trabalho, além de permissões para criar recursos dentro do grupo de recursos da carga de trabalho.
- Habilite
Advancedo modo de manutenção para o enclave para que você possa adicionar os recursos Link Privado ao grupo de recursos gerenciados pelo enclave. - Um contêiner (artefatos) dentro da conta de armazenamento.
- Um endpoint da comunidade para a conta de armazenamento e, opcionalmente, para uma cópia existente do AzCopy.exe.
- Uma cópia do AzCopy.exe
- Baixe o AzCopy.
- Envie o instalador do AzCopy para a conta de armazenamento no mesmo nível que a pasta do aplicativo.
- Estrutura de Arquivo:
- storage account - artifacts container - app folder - azcopy.exe
- Conexões de enclave entre os endpoints da comunidade criados anteriormente e a sub-rede do enclave.
Note
Se a conta de armazenamento estiver em um enclave diferente, crie um endpoint de enclave no enclave em que está a conta de armazenamento. Em seguida, crie uma conexão de enclave entre esse enclave de conta de armazenamento e o enclave em que você está instalando o aplicativo.
Recursos do Azure implantados
- Máquina Virtual de exemplo do RemoteApp
- Disk
- Máquina Virtual do Windows
- Extensão da máquina virtual Windows
Software implantado
- Windows
- Aplicação de sua escolha
Installation
Configurar a Conta de Armazenamento para instalar Visual Studio Code
- Adicione a pasta do aplicativo ao contêiner dentro da conta de armazenamento.
- Estrutura de Arquivo:
- artifacts container - app folder - app installer - main script to install app - (optional) additional scripts - (optional) azcopy.exe
- Estrutura de Arquivo:
- Baixe o instalador de aplicativo de que você precisa. Neste exemplo, baixe Vscode.exe e carregue o instalador na pasta do aplicativo da conta de armazenamento.
- Carregue o script de instalação do aplicativo
main.ps1compatível com a versão do Visual Studio Code que você adicionou à pasta do aplicativo da conta de armazenamento:# Main powershell script that installs the application Start-Process 'C:/vscode/VSCodeSetup-x64-{version}.exe' -Argument "/VERYSILENT /MERGETASKS=!runcode"
Modelo de instalação
- Na página de visão geral da carga de trabalho, selecione
+Add an Azure Service.
- Para
Service, selecioneVirtual Machine.
Confirmar a seleção do grupo de recursos e selecionar
NextAba Noções básicas:
- Para
Virtual Machine name, insira o nome da Máquina Virtual. - Para
Admin usernameeAdmin password, insira o nome de usuário e a senha que você usa para fazer logon em sua Máquina Virtual.
- Para
Aba do aplicativo:
Para
App folder URI, insira o URI no contêiner. Selecione um artefato dentro do contêiner, copie seu URI e remova tudo após o nome da pasta no URI.
URI original URI corrigido <storage-account>https://.blob.core.windows.net/<container-name>/<folder-name>/<script>.ps1<storage-account>https://.blob.core.windows.net/<container-name>/<folder-name>Exemplo:
- storageaccountexample.blob.core.windows.net/artifacts/vscode
Para
Main Scriptinserir o nome (ex:main.ps1) do script que instala o aplicativo.
Contêiner privado:
Para
App folder in private container, selecionetruepara permitir o acesso da funçãoreaderà conta de armazenamento por meio da Máquina Virtual.Para
Storage container resource id, obtenha as três partes a seguir:<storage-account-resource-id>+ '/blobServices/default/containers/' +<container-name>.- Para obter
Storage container resource id, na conta de armazenamento, selecione "Visão geral", selecione "Exibição JSON" no canto superior direito e copie o ID do recurso da conta de armazenamento.
- Para o nome do contêiner, copie o nome do contêiner privado que contém os artefatos.
- Exemplo de ID do recurso de contêiner de armazenamento:
subscriptions/000000a0-a0a0-000a-00a0-0000aaa0a000/resourceGroups/providers/Microsoft.Storage/storageAccounts/storage-account-example/blobServices/default/containers/container-name
- Para obter
Se o parâmetro
AzCopy File URIfor exibido, adicione o URI do contêiner ao azcopy.exe- Selecione o arquivo e copie sua URL:
Exemplo de parâmetros de contêiner privado:
- Selecione
Review and Create; se as validações forem bem-sucedidas, selecioneCreate. - Depois que os recursos forem implantados, verifique se o aplicativo está instalado na Máquina Virtual do aplicativo conectando-se à Máquina Virtual do Aplicativo. Conectar-se à Máquina Virtual do Aplicativo
Instalação do WinGet
Estrutura de pastas:
- 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')
- Baixar os instaladores e enviá-los para a pasta winget no contêiner de armazenamento
- pacote do WinGet
MSIX(Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle) - Biblioteca de interface do usuário do Windows (Microsoft. UI. Xaml.2.8.x64.appx)
- pacote do WinGet
- Criar e fazer upload de scripts
- 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
- Continuar a implantar o modelo