Existe uma maneira de copiar e colar programaticamente em um RDP?

2

Eu estou olhando para escrever um script rápido para enviar um arquivo (que eu mudo frequentemente) da minha estação de trabalho (sistema operacional windows7) para um servidor remoto (windows server 2012) através do cliente RDP.

Idealmente, estou procurando instanciar o processo rdpclip.exe com alguns argumentos. Algo como: %código% mas ao meu conhecimento (e uma breve pesquisa no google) não existe tal equivalente.

Além disso, eu não estou procurando por ferramentas de terceiros para fazer isso!

    
por Matthew Peters 02.09.2015 / 18:38

5 respostas

1

Você pode usar o PowerShell para colocar o arquivo na área de transferência:

Add-Type -AssemblyName System.Windows.Forms
$f = New-Object System.Collections.Specialized.StringCollection
$f.Add("D:\tmp\mypic1.bmp")
[System.Windows.Forms.Clipboard]::SetFileDropList($f)
    
por 12.09.2015 / 21:05
4

Se você pretende manter-se conectado à sessão do RDP, você pode mapear uma unidade em sua conexão, o que pode tornar sua unidade local disponível para o computador remoto. Isso está na guia Recursos locais da área de trabalho remota, no botão Mais ... .

Quando isso estiver ativado, você poderá fazer uma tarefa agendada para copiar arquivos. Você pode acessar as unidades locais a partir do nome de compartilhamento especial \tsclient\c ou da unidade que você está tentando acessar, conforme descrito em este artigo da TechNet . Portanto, um exemplo de script que você executaria no computador remoto pode ser algo assim:

IF EXIST "\tsclient\c\Mydir\MyFile" copy /Y "\tsclient\c\Mydir\MyFile" "C:\Syncrhonized\MyDir\MyFile"

Você pode colocar isso como uma tarefa agendada para ser executada a cada poucos minutos ou mais. Esteja ciente de um problema em potencial se outras pessoas estiverem remotas nesse computador com mapeamentos de unidade e estrutura de arquivos. Seu script não saberá qual computador é o correto, a menos que você jogue algum tipo de lógica para verificar isso.

    
por 09.09.2015 / 15:17
1

De acordo com minha pesquisa, o rdpclip.exe não aceita argumentos de linha de comando. Usá-lo para copiar programaticamente arquivos aparentemente não é pretendido.

Como o Windows Vista robocopy faz parte de todas as instalações do Windows. Eu não sei como você quer usar rdpclip.exe para transferir um arquivo para o host remoto. Mas meu primeiro pensamento foi montar um netshare, usar o robocopy para transferir um arquivo e desmontar o netshare. Em um script, será parecido com:

net use \Server\Sharename /USER:[username] [passwort]
robocopy [Source] [Destination]
net use \Servername\Sharename /del
    
por 09.09.2015 / 14:55
1

Como você diz que não pode compartilhar seu disco rígido local com o servidor, o único mecanismo de compartilhamento que resta é a área de transferência.

Se a área de transferência for compartilhável pela conexão RDP, você poderá usar o código-fonte aberto projeto RDC da Área de Transferência .

Este projeto consiste em um programa Java muito pequeno que é lançado em ambos os lados da conexão. O programa do lado do cliente é usado para codificar um arquivo e carregá-lo para a área de transferência, enquanto o programa do lado do servidor decodifica e armazena em um arquivo local. A limitação aqui é que o arquivo deve ser pequeno o suficiente para caber na área de transferência.

Como está, isso é mais trabalho do que você queria fazer. Mas você pode modificar este programa simples e separá-lo em duas partes:

  1. Um programa do lado do cliente que aceitará um caminho de arquivo como parâmetro e coloque o arquivo codificado na área de transferência.
  2. Um programa do lado do servidor que fará um loop, testando a cada poucos segundos para o presença de tal arquivo na área de transferência, decodificando e armazenando-o na pasta.

Como esses serão seus próprios programas que você controla totalmente, você pode adicionar recursos como como adicionar o caminho de destino para as informações que você coloca no área de transferência, para que isso se torne uma ferramenta de uso geral para transferir automaticamente vários arquivos pequenos o suficiente do cliente para o servidor.

    
por 10.09.2015 / 09:26
0

Você pode copiar o arquivo da sua máquina com Windows 7 (CTRL + C) e colá-lo na sessão da Área de Trabalho Remota (CTRL + V)?

Eu posso fazer isso com muitos arquivos, mas geralmente ele falha em arquivos grandes como 4 GB +.

    
por 12.09.2015 / 21:51