it-swarm-ja.com

プログラムでコピーしてRDPに貼り付ける方法はありますか?

ワークステーション(windows7 OS)からRDPクライアントを介してリモートサーバー(windows server 2012)に1つのファイル(頻繁に変更する)を送信する簡単なスクリプトを作成したいと考えています。

理想的には、いくつかの引数を使用してrdpclip.exeプロセスをインスタンス化することを検討しています。何かのようなもの: rdpclip.exe -f [fileToCopyFromLocalToRemote]しかし、私の知る限り(そして簡単なグーグル検索)、そのような同等のものはありません。

また、私はnotこれを行うためのサードパーティツールを探しています!

3
Matthew Peters

PowerShellを使用して、ファイルをクリップボードに置くことができます。

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)
1
Eldarien

RDPセッションへの接続を維持する場合は、接続で ドライブをマップ して、ローカルドライブをリモートコンピューターで使用できるようにすることができます。これは、リモートデスクトップのローカルリソースタブのその他...ボタンの下にあります。

これを有効にすると、スケジュールされたタスクを作成してファイルをコピーできます。 このTechNetの記事 で説明されているように、特別な共有名\\tsclient\cまたはアクセスしようとしているドライブからローカルドライブにアクセスできます。したがって、実行するサンプルスクリプトリモートコンピューター上は次のようになります。

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

これをスケジュールされたタスクとして入れて、数分ごとに実行することができます。ドライブマッピングとファイル構造を使用して他の人がこのコンピュータにリモートでアクセスする場合は、潜在的な問題に注意してください。スクリプトは、それをチェックするために何らかのロジックを投入しない限り、どのコンピューターが正しいかを認識しません。

4
GuitarPicker

ローカルハードディスクをサーバーと共有することはできないとおっしゃっていますが、残っている共有メカニズムはクリップボードだけです。

クリップボードがRDP接続を介して共有可能である場合は、オープンソースプロジェクト クリップボードRDC を使用できます。

このプロジェクトは、接続の両側で起動される非常に小さなJavaプログラムで構成されています。クライアント側のプログラムは、ファイルをエンコードしてクリップボードにロードするために使用されます。サイドプログラムはそれをデコードしてローカルファイルに保存します。ここでの制限は、ファイルがクリップボードに収まるほど小さくなければならないことです。

現状では、これはあなたがやりたかった以上の仕事です。ただし、この単純なプログラムを変更して、2つの部分に分けることができます。

  1. ファイルパスをパラメーターとして受け入れ、エンコードされたファイルをクリップボードに配置するクライアント側プログラム。
  2. ループするサーバー側プログラム。クリップボードにそのようなファイルが存在するかどうかを数秒ごとにテストし、デコードしてフォルダーに保存します。

これらは完全に制御できる独自のプログラムになるため、クリップボードに配置する情報に宛先パスを追加するなどの機能を追加して、複数の十分に小さいファイルをから自動的に転送するための汎用ツールになることができます。クライアントからサーバーへ。

1
harrymc

私の調査によると、rdpclip.exeはコマンドライン引数を受け入れません。プログラムでファイルをコピーするためにそれを使用することは、明らかに意図されていません。

Windows Vista以降robocopyはすべてのWindowsインストールの一部です。 rdpclip.exeを使用してファイルをリモートホストに転送する方法がわかりません。しかし、私の最初の考えは、ネットシェアをマウントし、robocopyを使用してファイルを転送し、ネットシェアをマウント解除することでした。スクリプトでは、次のようになります。

Net Use \\Server\Sharename /USER:[username] [passwort]
robocopy [Source] [Destination]
Net Use \\Servername\Sharename /del
1
hirnwunde

Windows 7マシンからファイルをコピーして(CTRL + C)、リモートデスクトップセッションに貼り付けることができますか(CTRL + V)?

多くのファイルでこれを行うことができますが、通常、4GB以上のような大きなファイルでは失敗します。

0
Peter