rdp-cli · 0.1.0

Referência de comandos do rdp-cli

Os 48 comandos do rdp-cli 0.1.0: conexão, capturas, entrada, arquivos, controle humano e acesso web.

Baseado no catálogo verificado da versão 0.1.0. Os recursos dependem da plataforma e da negociação do protocolo; confira a versão instalada.

Observar, agir e verificar

USER, SESSION, OBSERVATION, X e Y devem ser substituídos. Envie a senha por stdin e feche o fluxo; --password-stdin não abre um prompt interativo. Guarde data.session, leia before.png, escolha coordenadas da imagem e verifique after.png. Enviar a entrada não confirma a conclusão da tarefa.

rdp-cli connect --host desktop.example.net --user USER --password-stdin
rdp-cli screenshot --session SESSION --out before.png
rdp-cli click --session SESSION --desktop --x X --y Y --observation OBSERVATION
rdp-cli screenshot --session SESSION --out after.png

--version informa versão e capacidades; --help-json fornece o catálogo estruturado; COMMAND --help descreve as opções sem iniciar uma sessão.

rdp-cli --version
rdp-cli --help-json
rdp-cli connect --help

JSON e opções comuns

Comandos normais retornam um objeto JSON UTF-8 em stdout: ok: true com data ou ok: false com error. stderr contém diagnósticos. Códigos de saída: 0 sucesso, 1 falha operacional, 2 argumentos inválidos.

A ajuda usa texto. events --follow transmite NDJSON; events sem acompanhamento retorna um resultado JSON com data.events e data.ndjson. No PowerShell 5.1, configure [Console]::OutputEncoding e $OutputEncoding como UTF-8 para texto não ASCII.

data.session
Guarde o ID retornado por connect.
data.observation
Use o token da captura; renove após reconexão ou mudanças de controle e telas.
data.capabilities
Consulte capacidades negociadas antes de arquivos, áudio, área de transferência ou monitores.
data.state / data.remote_outcome
queued, sent, partial, unknown, cancelled e failed descrevem progresso. remote_outcome: not_confirmed ainda exige conferir o resultado.
data.transfer_id
Use com files status ou files cancel; espere um estado final e confira hashes dos arquivos concluídos.
error.code / error.message / error.retryable
Decida pelo código estável. Mensagem e retryable orientam, mas não autorizam repetição sem análise.

Todos os comandos aceitam --request-id e --timeout-ms. Reutilize um ID apenas com o mesmo comando e argumentos dentro da janela de retenção. Um timeout local não prova que nada foi enviado; consulte operations status.

--request-id ID · --timeout-ms MILLISECONDS

Sessões

connect exige --host e, em RDP, --user. Portas padrão: RDP 3389, VNC 5900. Para conexões que exigem senha, escolha uma fonte: --password, --password-stdin ou --credential-ref. VNC com --vnc-security none não usa fonte de senha. --domain é de RDP; --size e --layout são exclusivos. --connect-timeout-ms limita a conexão. reconnect mantém a pausa; disconnect não encerra o login remoto.

rdp-cli connect#

Criar sessão RDP/VNC persistente

Não exige sessão.

Opções do comando
OpçãoFormato e valoresRequisito
--host

Nome ou IP do servidor remoto

TextoObrigatória
--protocol

Protocolo de área de trabalho remota

Escolha
rdp | vnc
Padrão: rdp
Opcional
--vnc-security

Autenticação VNC; none deve ser escolhido explicitamente

Escolha
vnc-auth | none
Opcional
--port

Porta TCP: RDP 3389, VNC 5900

Inteiro positivo
Padrão: RDP 3389 · VNC 5900
Opcional
--user

Conta local ou de domínio; obrigatória para RDP

TextoOpcional
--domain

Domínio do Windows

TextoOpcional
--password

Senha; VNC clássico usa os primeiros 8 bytes UTF-8

TextoOpcional
--password-stdin

Ler a senha da entrada padrão até EOF

SinalizadorOpcional
--cert-policy

Política de certificado RDP, independente do HTTPS Web

Escolha
ignore | strict
Padrão: ignore
Opcional
--tls-profile

modern exige TLS 1.2; legacy permite TLS e criptografia antigos nesta sessão

Escolha
modern | legacy
Padrão: modern
Opcional
--credential-ref

Referência existente no armazenamento de credenciais

TextoOpcional
--save-credential

Salvar a senha validada com esta referência

TextoOpcional
--name

Nome legível da sessão

TextoOpcional
--size

Tamanho da área de trabalho WIDTHxHEIGHT

TextoOpcional
--layout

Layout de monitores em JSON ou @file

TextoOpcional
--connect-timeout-ms

Prazo de conexão em milissegundos

Inteiro positivoOpcional

rdp-cli connect --help

rdp-cli list#

Listar sessões visíveis

Não exige sessão.

rdp-cli list --help

rdp-cli status#

Consultar estado da sessão

Exige --session SESSION.

rdp-cli status --help

rdp-cli reconnect#

Reconectar e permanecer pausado

Exige --session SESSION.

rdp-cli reconnect --help

rdp-cli disconnect#

Desconectar sem encerrar login remoto

Exige --session SESSION.

rdp-cli disconnect --help

Visualização e status

watch abre um visualizador humano somente para leitura com --viewer window ou web; comandos do Agent não dependem dele. presence show/hide controla o status local; --floating adiciona controles e --panel abre o painel de sessões no macOS ou Linux. Fechar a observação mantém a conexão.

rdp-cli watch#

Abrir visualizador humano

Exige --session SESSION.

Opções do comando
OpçãoFormato e valoresRequisito
--viewer

Implementação do visualizador

Escolha
window | web
Padrão: window
Opcional

rdp-cli watch --help

rdp-cli presence show#

Mostrar status do desktop

Não exige sessão.

Opções do comando
OpçãoFormato e valoresRequisito
--floating

Exibir também os controles flutuantes opcionais

SinalizadorOpcional
--panel

Abrir também o painel de sessões no macOS ou Linux

SinalizadorOpcional

rdp-cli presence show --help

rdp-cli presence hide#

Ocultar status sem desconectar

Não exige sessão.

rdp-cli presence hide --help

Controle e devolução

pause usa --session ou --all e revoga controle humano. resume devolve ao Agent. control take exige um viewer ID conectado; release pode indicar esse visualizador ou o Agent de destino. Respeite pausas humanas e capture novamente após a devolução.

rdp-cli pause#

Pausar entrada e revogar controle

Escolha exatamente um: --session SESSION ou --all.

rdp-cli pause --help

rdp-cli resume#

Devolver sessão ao Agent

Exige --session SESSION.

rdp-cli resume --help

rdp-cli control take#

Entregar controle ao visualizador

Exige --session SESSION.

Opções do comando
OpçãoFormato e valoresRequisito
--viewer-id

ID do visualizador conectado; titular do controle quando necessário

TextoObrigatória

rdp-cli control take --help

rdp-cli control release#

Devolver controle ao Agent

Exige --session SESSION.

Opções do comando
OpçãoFormato e valoresRequisito
--viewer-id

ID do visualizador conectado; titular do controle quando necessário

TextoOpcional
--agent-id

Agent que receberá o controle

TextoOpcional

rdp-cli control release --help

Capturas, entrada e área de transferência

screenshot salva PNG com --out e seleciona tela com --monitor. Coordenadas exigem observation e referência à tela ou --desktop, sem misturar. drag usa origem/destino e monitores opcionais. type escolhe --text ou --text-stdin; --sensitive altera o aviso, não a captura. key usa --keys ou --key com --state. A escrita substitui o texto da área de transferência remota.

rdp-cli screenshot#

Capturar observação PNG consistente

Exige --session SESSION.

Opções do comando
OpçãoFormato e valoresRequisito
--monitor

ID do monitor; screenshot também aceita all

Texto
Padrão: all
Opcional
--out

Arquivo PNG de destino

CaminhoOpcional

rdp-cli screenshot --help

rdp-cli move#

Mover ponteiro remoto

Exige --session SESSION.

Opções do comando
OpçãoFormato e valoresRequisito
--x

Coordenada x remota

InteiroObrigatória
--y

Coordenada y remota

InteiroObrigatória
--monitor

ID do monitor; screenshot também aceita all

TextoOpcional
--desktop

Usar coordenadas da área de trabalho em vez das locais do monitor

SinalizadorOpcional
--observation

Token de uma captura recente

TextoObrigatória

rdp-cli move --help

rdp-cli click#

Clicar em coordenada remota

Exige --session SESSION.

Opções do comando
OpçãoFormato e valoresRequisito
--x

Coordenada x remota

InteiroObrigatória
--y

Coordenada y remota

InteiroObrigatória
--button

Botão do mouse

Escolha
left | right | middle
Padrão: left
Opcional
--count

Número de cliques

Inteiro positivoOpcional
--monitor

ID do monitor; screenshot também aceita all

TextoOpcional
--desktop

Usar coordenadas da área de trabalho em vez das locais do monitor

SinalizadorOpcional
--observation

Token de uma captura recente

TextoObrigatória

rdp-cli click --help

rdp-cli scroll#

Rolar em uma coordenada

Exige --session SESSION.

Opções do comando
OpçãoFormato e valoresRequisito
--x

Coordenada x remota

InteiroObrigatória
--y

Coordenada y remota

InteiroObrigatória
--delta-x

Unidades horizontais da roda com sinal

InteiroOpcional
--delta-y

Unidades verticais da roda com sinal

InteiroOpcional
--monitor

ID do monitor; screenshot também aceita all

TextoOpcional
--desktop

Usar coordenadas da área de trabalho em vez das locais do monitor

SinalizadorOpcional
--observation

Token de uma captura recente

TextoObrigatória

rdp-cli scroll --help

rdp-cli drag#

Arrastar entre coordenadas

Exige --session SESSION.

Opções do comando
OpçãoFormato e valoresRequisito
--from-x

Coordenada x inicial

InteiroObrigatória
--from-y

Coordenada y inicial

InteiroObrigatória
--to-x

Coordenada x final

InteiroObrigatória
--to-y

Coordenada y final

InteiroObrigatória
--from-monitor

ID do monitor inicial

TextoOpcional
--to-monitor

ID do monitor final

TextoOpcional
--desktop

Usar coordenadas da área de trabalho em vez das locais do monitor

SinalizadorOpcional
--observation

Token de uma captura recente

TextoObrigatória

rdp-cli drag --help

rdp-cli type#

Digitar Unicode sem alterar a área de transferência

Exige --session SESSION.

Opções do comando
OpçãoFormato e valoresRequisito
--text

Texto Unicode de entrada ou da área de transferência

TextoOpcional
--text-stdin

Ler o texto de entrada ou da área de transferência até EOF

SinalizadorOpcional
--sensitive

Ocultar texto em eventos observáveis; as capturas continuam mostrando a tela

SinalizadorOpcional
--observation

Token de uma captura recente

TextoObrigatória

rdp-cli type --help

rdp-cli key#

Enviar combinação ou estado de tecla

Exige --session SESSION.

Opções do comando
OpçãoFormato e valoresRequisito
--keys

Combinação como CTRL+S

TextoOpcional
--key

Nome de uma tecla

TextoOpcional
--state

Estado da tecla ou do áudio mudo conforme os valores listados

Escolha
down | up
Opcional
--observation

Token de uma captura recente

TextoObrigatória

rdp-cli key --help

rdp-cli clipboard get#

Ler área de transferência remota

Exige --session SESSION.

rdp-cli clipboard get --help

rdp-cli clipboard set#

Escrever na área de transferência remota

Exige --session SESSION.

Opções do comando
OpçãoFormato e valoresRequisito
--text

Texto Unicode de entrada ou da área de transferência

TextoOpcional
--text-stdin

Ler o texto de entrada ou da área de transferência até EOF

SinalizadorOpcional
--observation

Token de uma captura recente

TextoObrigatória

rdp-cli clipboard set --help

Arquivos

--path é relativo à unidade de troca, não a qualquer disco remoto; --local indica arquivo ou diretório cliente. Substituir exige --overwrite. upload/download retornam ID; status sem ID lista transferências. cancel pode preservar arquivos concluídos; cleanup remove conteúdo escolhido e pode retornar FILE_BUSY.

rdp-cli files list#

Listar unidade de troca

Exige --session SESSION.

Opções do comando
OpçãoFormato e valoresRequisito
--path

Caminho relativo à troca de arquivos, não a qualquer disco remoto

CaminhoOpcional

rdp-cli files list --help

rdp-cli files upload#

Enviar arquivo ou diretório

Exige --session SESSION.

Opções do comando
OpçãoFormato e valoresRequisito
--local

Arquivo/diretório local de envio ou destino do download

CaminhoObrigatória
--path

Caminho relativo à troca de arquivos, não a qualquer disco remoto

CaminhoObrigatória
--overwrite

Permitir substituir um destino existente

SinalizadorOpcional

rdp-cli files upload --help

rdp-cli files download#

Baixar arquivo ou diretório

Exige --session SESSION.

Opções do comando
OpçãoFormato e valoresRequisito
--path

Caminho relativo à troca de arquivos, não a qualquer disco remoto

CaminhoObrigatória
--local

Arquivo/diretório local de envio ou destino do download

CaminhoObrigatória
--overwrite

Permitir substituir um destino existente

SinalizadorOpcional

rdp-cli files download --help

rdp-cli files status#

Consultar transferências

Exige --session SESSION.

Opções do comando
OpçãoFormato e valoresRequisito
--transfer-id

ID da transferência; files status sem ele lista as transferências

TextoOpcional

rdp-cli files status --help

rdp-cli files cancel#

Cancelar transferência

Exige --session SESSION.

Opções do comando
OpçãoFormato e valoresRequisito
--transfer-id

ID da transferência; files status sem ele lista as transferências

TextoObrigatória

rdp-cli files cancel --help

rdp-cli files cleanup#

Remover conteúdo de troca

Exige --session SESSION.

Opções do comando
OpçãoFormato e valoresRequisito
--path

Caminho relativo à troca de arquivos, não a qualquer disco remoto

CaminhoObrigatória

rdp-cli files cleanup --help

Som e microfone

audio status informa capacidades. mute/volume afetam --viewer-id, com on/off e --percent positivo. audio microphone apenas consulta ou interrompe. Iniciar exige ação explícita da pessoa que controla um visualizador autorizado.

rdp-cli audio status#

Consultar capacidades de áudio

Exige --session SESSION.

rdp-cli audio status --help

rdp-cli audio mute#

Silenciar ou reativar um visualizador

Exige --session SESSION.

Opções do comando
OpçãoFormato e valoresRequisito
--viewer-id

ID do visualizador conectado; titular do controle quando necessário

TextoObrigatória
--state

Estado da tecla ou do áudio mudo conforme os valores listados

Escolha
on | off
Obrigatória

rdp-cli audio mute --help

rdp-cli audio volume#

Ajustar volume do visualizador

Exige --session SESSION.

Opções do comando
OpçãoFormato e valoresRequisito
--viewer-id

ID do visualizador conectado; titular do controle quando necessário

TextoObrigatória
--percent

Ganho de reprodução em porcentagem

Inteiro positivoObrigatória

rdp-cli audio volume --help

rdp-cli audio microphone#

Consultar ou parar microfone

Exige --session SESSION.

Opções do comando
OpçãoFormato e valoresRequisito
--action

Consultar ou parar o microfone; iniciar exige um visualizador humano

Escolha
status | stop
Padrão: status
Opcional

rdp-cli audio microphone --help

Monitores

monitors retorna a topologia. monitors set aceita JSON ou @file; --allow-reconnect permite reconexão se não houver ajuste dinâmico. Confira a nova topologia e faça outra captura. VNC informa o framebuffer, mas rejeita alterações de disposição solicitadas.

rdp-cli monitors#

Consultar topologia negociada

Exige --session SESSION.

rdp-cli monitors --help

rdp-cli monitors set#

Alterar disposição dos monitores

Exige --session SESSION.

Opções do comando
OpçãoFormato e valoresRequisito
--layout

Layout de monitores em JSON ou @file

TextoObrigatória
--allow-reconnect

Permitir reconexão se o layout dinâmico não estiver disponível

SinalizadorOpcional

rdp-cli monitors set --help

Acesso web

web start configura endereço, certificado/chave TLS ou proxy confiável; --ice-server pode repetir. Fora de loopback são necessários LAN/VPN, HTTPS e autorização. access grant exige --permission e --expires-in em segundos. Permissões: session.observe/control, clipboard.read/write, files.read/write, audio.listen/send. Revogar encerra os fluxos associados.

rdp-cli web start#

Iniciar serviço web autorizado

Não exige sessão.

Opções do comando
OpçãoFormato e valoresRequisito
--listen

Endereço de escuta

TextoOpcional
--tls-cert

Arquivo de certificado HTTPS

CaminhoOpcional
--tls-key

Arquivo da chave privada HTTPS

CaminhoOpcional
--trust-proxy

Confiar no proxy configurado

SinalizadorOpcional
--ice-server

URL STUN/TURN para WebRTC

TextoOpcional · Repetível

rdp-cli web start --help

rdp-cli web status#

Consultar serviço web

Não exige sessão.

rdp-cli web status --help

rdp-cli web stop#

Parar acesso web sem fechar sessões

Não exige sessão.

rdp-cli web stop --help

rdp-cli access grant#

Criar autorização web limitada

Exige --session SESSION.

Opções do comando
OpçãoFormato e valoresRequisito
--permission

Permissão concedida ao token de acesso

TextoObrigatória · Repetível
--expires-in

Validade da autorização em segundos

Inteiro positivoObrigatória

rdp-cli access grant --help

rdp-cli access list#

Listar autorizações

Exige --session SESSION.

rdp-cli access list --help

rdp-cli access revoke#

Revogar autorização e fluxos

Exige --session SESSION.

Opções do comando
OpçãoFormato e valoresRequisito
--grant-id

Identificador da autorização

TextoObrigatória

rdp-cli access revoke --help

Operações e eventos

operations status consulta operation ID ou request ID original sem reenviar entrada. events lê eventos; --follow acompanha, --after retoma pelo cursor. Mesmo sent exige verificar a aplicação remota.

rdp-cli operations status#

Consultar resultado retido

Exige --session SESSION.

Opções do comando
OpçãoFormato e valoresRequisito
--operation-id

Identificador da operação

TextoOpcional
--request-id

ID de correlação/idempotência; operations status consulta a solicitação original

TextoOpcional

rdp-cli operations status --help

rdp-cli events#

Ler ou acompanhar eventos

Exige --session SESSION.

Opções do comando
OpçãoFormato e valoresRequisito
--follow

Continuar acompanhando eventos novos

SinalizadorOpcional
--after

Retomar após um cursor de eventos

TextoOpcional

rdp-cli events --help

Confiança, credenciais e instalação

trust associa destino RDP e impressão digital no modo estrito. credentials remove apaga a referência indicada. No macOS e Linux, install-cli/uninstall-cli gerenciam a entrada CLI e --prefix escolhe o local; Windows executa o arquivo baixado. presence show --panel abre o painel de sessões no macOS e Linux. O catálogo foi verificado com o CLI publicado do macOS 0.1.0; as diferenças do Linux foram conferidas na implementação publicada. licenses mostra versões e licenças de terceiros.

rdp-cli trust list#

Listar confiança de certificados RDP

Não exige sessão.

rdp-cli trust list --help

rdp-cli trust add#

Confiar em impressão digital específica

Não exige sessão.

Opções do comando
OpçãoFormato e valoresRequisito
--target

Destino de confiança RDP

TextoObrigatória
--fingerprint

Impressão digital do certificado

TextoObrigatória

rdp-cli trust add --help

rdp-cli trust remove#

Remover registro de confiança

Não exige sessão.

Opções do comando
OpçãoFormato e valoresRequisito
--target

Destino de confiança RDP

TextoObrigatória

rdp-cli trust remove --help

rdp-cli credentials remove#

Remover credencial do produto

Não exige sessão.

Opções do comando
OpçãoFormato e valoresRequisito
--reference

Referência de credencial a remover

TextoObrigatória

rdp-cli credentials remove --help

rdp-cli install-cli#

Instalar a entrada CLI no macOS ou Linux

Não exige sessão.

Opções do comando
OpçãoFormato e valoresRequisito
--prefix

Prefixo de instalação controlado pelo usuário

CaminhoOpcional

rdp-cli install-cli --help

rdp-cli uninstall-cli#

Remover entrada CLI criada

Não exige sessão.

rdp-cli uninstall-cli --help

rdp-cli licenses#

Mostrar versões e licenças de terceiros

Não exige sessão.

rdp-cli licenses --help

Condições de protocolo e plataforma

  • RDP usa --cert-policy ignore e --tls-profile modern. strict verifica confiança e nome; legacy permite TLS antigo explicitamente. A verificação HTTPS web não muda.
  • VNC rejeita --user, --domain, --size, --layout, --cert-policy e --tls-profile. A autenticação clássica usa oito bytes UTF-8 da senha. Sem autenticação exige --vnc-security none e nenhuma senha. Os transportes VNC suportados não são criptografados.
  • VNC não oferece arquivos, áudio, microfone ou mudanças ativas de telas. UTF-8 na área de transferência depende da negociação; caso contrário, apenas Latin-1.
  • Arquivos RDP exigem redirecionamento de unidades. Áudio, área de transferência, microfone e múltiplos monitores também dependem do servidor.
  • Windows/macOS têm visualizadores e status nativos. Linux precisa de serviços de tela/áudio e Secret Service para salvar credenciais; operações CLI compatíveis continuam disponíveis sem desktop.
  • A entrada Unicode é enviada com pausas de compatibilidade. Ajuste o timeout para textos longos e confira; nenhum visualizador garante todos os caracteres em todos os servidores.

Recuperação de erros

OBSERVATION_REQUIRED / INVALID_COORDINATES
Capture novamente e confira topologia e coordenadas.
SESSION_PAUSED / CONTROL_HELD_BY_HUMAN
Pare a entrada e aguarde a devolução explícita ao Agent.
AUTH_FAILED / VNC_AUTH_FAILED
Confira conta, fonte da senha e política remota.
RDP_TLS_HANDSHAKE_FAILED / CERTIFICATE_UNTRUSTED
Confira TLS, certificado e impressão digital; falha TLS não significa senha errada.
CAPABILITY_UNAVAILABLE / CLIPBOARD_ENCODING_UNSUPPORTED
Verifique capacidades ou codificação e escolha uma operação suportada.
REQUEST_TIMEOUT / REQUEST_ID_CONFLICT / REQUEST_WINDOW_EXPIRED
Consulte operação e tela antes de repetir; não reutilize IDs com argumentos diferentes ou retenção expirada.