Ativo · Referência de implantação
PowerShellMicrosoft IntuneAplicativos Win32Windows InstallerRustDeskServiços WindowsTOML

Problema

Implantar o RustDesk em um ambiente corporativo exige mais do que enviar um MSI aos endpoints Windows.

O cliente precisa receber os endereços aprovados de HBBS, HBBR e API da infraestrutura self-hosted, a chave pública do servidor, configuração funcional para contextos de serviço e usuário, logs operacionais e uma regra de detecção que comprove mais do que a existência do executável.

A instalação normalmente é executada pela Intune Management Extension como SYSTEM, enquanto o serviço Windows e os usuários interativos podem ler configurações de perfis diferentes. Um código de sucesso do MSI não garante que o serviço foi iniciado, que o servidor esperado foi gravado ou que o Intune consiga detectar o estado pretendido.

Solução

RustDeskIntuneDeployment organiza a implantação em três fluxos PowerShell:

  • install.ps1 executa a instalação silenciosa do MSI, distribui a configuração, valida os arquivos, provisiona o serviço, registra logs e cria um marcador de conclusão;
  • detect.ps1 valida o executável, uma configuração de máquina com o servidor esperado e o marcador de implantação;
  • uninstall.ps1 localiza o produto MSI instalado e solicita sua remoção silenciosa.

O diretório resultante é convertido em um aplicativo Win32 do Microsoft Intune com o Microsoft Win32 Content Prep Tool.

A infraestrutura do servidor RustDesk permanece fora do escopo. O pacote configura os endpoints para utilizar um serviço aprovado; ele não implanta HBBS, HBBR, API, console web, identidades de operadores ou autorização no servidor.

Fluxo de instalação

O instalador é executado como SYSTEM e segue etapas explícitas:

  1. cria diretórios organizacionais para logs e marcadores;
  2. interrompe processos e serviço do RustDesk quando necessário;
  3. seleciona o MSI pretendido e executa msiexec silenciosamente;
  4. aceita os códigos de sucesso 0 e 3010 do Windows Installer;
  5. localiza o executável instalado;
  6. gera RustDesk2.toml com os valores revisados;
  7. grava a configuração nos contextos de máquina, serviço, usuário padrão e usuários existentes;
  8. valida se pelo menos um arquivo contém o host esperado;
  9. instala ou inicia o serviço RustDesk;
  10. cria a evidência final utilizada pela detecção do Intune.

Qualquer código inesperado do MSI ou ausência de configuração validada interrompe o fluxo antes da criação do marcador final.

Configuração em múltiplos contextos

A configuração é gravada no perfil de LocalService, no perfil de sistema utilizado por processos SYSTEM, em C:\ProgramData\RustDesk\config, no perfil de usuário padrão do Windows e nos perfis existentes descobertos pela chave ProfileList do Registro.

A cópia no perfil padrão atende usuários que entrarem depois da implantação. Os perfis já existentes recebem a configuração durante a instalação.

O script valida o conteúdo final em vez de assumir que uma operação de escrita sem exceção produziu a configuração correta.

Semântica da detecção

O script personalizado do Intune exige três condições:

  1. um executável RustDesk em caminho reconhecido;
  2. pelo menos um RustDesk2.toml de máquina contendo o servidor esperado;
  3. o marcador organizacional de implantação.

Essa abordagem representa o estado do pacote, e não um monitoramento completo de saúde. Ela não comprova atualmente a disponibilidade do serviço, todos os valores de porta, a chave pública, todas as cópias de perfil, conectividade ponta a ponta ou autorização dos operadores.

Decisões de segurança

Software de suporte remoto possui impacto privilegiado no endpoint. O projeto exige:

  • MSI confiável com assinatura, versão, hash SHA-256, origem e termos de redistribuição revisados;
  • endereços, portas e chave pública revisados antes do empacotamento;
  • inclusão somente da chave pública do servidor RustDesk;
  • exclusão da chave privada e de credenciais de produção;
  • implantação iniciada em anel piloto;
  • acesso restrito e monitorado à infraestrutura self-hosted;
  • sanitização de logs, marcadores, screenshots e documentação;
  • separação entre autorização para implantar o cliente e autorização para iniciar sessões remotas.

Existe um bloco opcional de senha permanente no instalador, mas ele permanece desabilitado. O projeto desencoraja incluir uma senha compartilhada em texto simples em um pacote amplamente distribuído.

Logs e evidências operacionais

A implantação produz um log de orquestração em PowerShell e um log detalhado do Windows Installer. Depois que todas as etapas são aprovadas, um marcador registra servidor, caminho do executável, versão detectada e locais de configuração validados.

O marcador é removido no início de uma reinstalação ou reparo, impedindo que evidências antigas façam uma implantação incompleta parecer em conformidade.

Limitações conhecidas

O script atual de desinstalação consulta Win32_Product, o que pode iniciar verificações de consistência do Windows Installer. A evolução planejada é utilizar as chaves de desinstalação do Registro.

A remoção concentra-se no produto MSI e não elimina automaticamente todos os arquivos de configuração, logs, marcadores ou registros no servidor. A detecção também não reconcilia continuamente cada valor TOML.

Estado atual

O repositório contém scripts de instalação, detecção e remoção; documentação bilíngue de arquitetura, configuração e Intune; orientação de segurança; changelog; licença MIT para a automação original; e espaços reservados para evidências sanitizadas do piloto.

Hostnames, portas, chaves públicas, credenciais, dados do tenant e identificadores organizacionais permanecem fora da configuração pública.

O que o projeto demonstra

RustDeskIntuneDeployment demonstra implantação de endpoints como um problema de estado, contexto e confiança. Ele transforma um instalador de fornecedor em um aplicativo Win32 controlado, com configuração em múltiplos perfis, validação após a escrita, provisionamento do serviço, logs, evidências explícitas, detecção personalizada, rollout progressivo e limites de segurança documentados.