Do executável Linux à captura remota

Este guia vai do download do rdp-cli até uma captura do desktop Windows por RDP. Ele descreve a versão 0.1.0 com evidências já existentes: a compilação Linux x86_64 2026092203 passou pela validação de software em dez sistemas; a ARM64 2026092301, em doze ambientes, incluindo Raspberry Pi 4 e DGX Spark. Este artigo não é um novo teste nem afirma que todas as distribuições Linux foram testadas.

Escolher a arquitetura e conferir o arquivo

No computador Linux que executará o rdp-cli:

uname -m

Na página de download, escolha Linux x86_64 para x86_64 ou Linux ARM64 para aarch64. Um processador ARM com sistema operacional de 32 bits está fora desta versão ARM64. Um Mac com macOS precisa do pacote macOS. Baixe o executável; os materiais separados de código-fonte e licenças não são necessários para executá-lo.

Antes de executar, compare o SHA-256 com os detalhes do arquivo da arquitetura correspondente na página de download. Para x86_64:

sha256sum ./rdp-cli-linux-x86_64

Somente após confirmar que o resumo coincide, habilite a execução e confira a versão:

chmod u+x ./rdp-cli-linux-x86_64
./rdp-cli-linux-x86_64 --version

Para ARM64:

sha256sum ./rdp-cli-linux-arm64

Somente após confirmar que o resumo coincide, habilite a execução e confira a versão:

chmod u+x ./rdp-cli-linux-arm64
./rdp-cli-linux-arm64 --version

--version deve retornar informações de versão em JSON. O produto é um único ELF estático e pode rodar como usuário comum, sem instalação como root. O visualizador nativo ainda usa os serviços de exibição do desktop ativo. O escopo validado não certifica todos os desktops, kernels ou dispositivos de áudio.

Conectar pelo Bash

O servidor Windows já deve ter RDP ativado, permitir que sua conta entre remotamente e estar acessível pelo computador Linux na rede ou VPN prevista. Instalar o cliente não ativa o serviço do Windows.

Em Bash, na pasta do executável, execute o seguinte. No ARM64, altere a primeira linha para rdp_cli=./rdp-cli-linux-arm64. Substitua 192.0.2.20 e USER pelo destino e conta autorizados; os caracteres da senha não aparecem durante a digitação.

rdp_cli=./rdp-cli-linux-x86_64
IFS= read -r -s -p 'Password: ' rdp_password
printf '\n'
printf '%s' "$rdp_password" | "$rdp_cli" connect --host 192.0.2.20 --user USER --password-stdin
unset rdp_password

Continue no mesmo shell para manter rdp_cli definido. O pipe envia a senha e fecha a entrada padrão. Para uma conta de domínio, acrescente --domain DOMAIN; não combine fontes de senha. Atualmente, RDP usa --cert-policy ignore por padrão: consulte connect --help e configure a verificação de certificado adequada ao ambiente. Uma política de certificados não corrige servidor inacessível nem credenciais inválidas.

Leia o JSON: em caso de falha, confira error.code e error.message; em caso de sucesso, guarde data.session como SESSION.

Examinar o estado e o primeiro PNG

"$rdp_cli" status --session SESSION
"$rdp_cli" screenshot --session SESSION --out first-screen.png

Confira os estados de conexão e controle. Abra first-screen.png com uma ferramenta de imagens e identifique a tela real antes de agir. Uma sessão conectada ainda pode mostrar login, boas-vindas ou um aplicativo ocupado. Guarde o data.observation da resposta da captura para uma entrada posterior baseada nessa imagem; ele não é um identificador permanente de sessão.

A janela local é opcional para capturas e entradas. Para uma pessoa acompanhar a mesma sessão em um desktop Linux:

"$rdp_cli" watch --session SESSION --viewer window

A janela inicia em modo somente leitura; a tomada de controle humana é explícita. Fechar um visualizador somente leitura mantém a conexão ativa; perder o visualizador que detém o controle deixa a entrada pausada. Após reconectar ou transferir o controle, examine uma captura nova e respeite o estado de controle.

Resolver a falha específica

  • Formato de executável incorreto: compare uname -m com a arquitetura baixada; os arquivos x86_64 e ARM64 não são intercambiáveis.
  • Permissão negada: confira o bit de execução e se o sistema de arquivos permite executar programas. Escolha uma pasta de usuário adequada em vez de elevar privilégios.
  • Erro de conexão ou autenticação: confira rota, porta, serviço RDP, permissão da conta e erro retornado. Não repita senhas nem ative TLS antigo para falhas sem relação com TLS.
  • SDL_INIT_FAILED sem desktop: a visualização nativa precisa de uma sessão gráfica; capturas CLI continuam disponíveis sem desktop. Um erro no visualizador, sozinho, não prova uma falha do RDP.
  • CREDENTIAL_STORE_FAILED: credenciais salvas usam o Secret Service do host. Se ele não estiver disponível, use uma fonte compatível como --password-stdin; não considere a credencial salva.

Continue pelo início rápido, pela referência de comandos ou pelo envio e download de arquivos por RDP. A troca de arquivos também depende de redirecionamento de unidades no servidor e de permissões nos arquivos.