2013-04-17 13 views
6

Webページからサーバーへのrdpセッションを開こうとしています。WebページからRDPを作成する方法

<td><a href="file:///c:/Users/stegar06/Desktop/wtf.bat">testrdp</a></td> 

.batファイルはそれで書かれた次の行を持っています MSTSC/V:EMEA-巻雲

何が起こるすると、ファイルは単なるテキストファイルとして私のChromeブラウザに表示されてしまうことです。 Webページがロードされ、文字通り「mstsc/v:emea-cirrus」と表示されます。リモートデスクトップクライアントを起動してそのアドレスに移動するにはどうすればよいですか?

また、.rdpファイルを作成しようとしましたが、これはhrefであり、これもプレーンテキストとして表示されています。 RDPファイルは、次のコードを使用して作成されました:

screen mode id:i:2 
desktopwidth:i:1436 
desktopheight:i:925 
session bpp:i:16 
auto connect:i:1 
full address:s:emea-orion 
compression:i:1 
keyboardhook:i:2 
audiomode:i:2 
redirectdrives:i:0 
redirectprinters:i:0 
redirectcomports:i:0 
redirectsmartcards:i:0 
displayconnectionbar:i:1 
alternate shell:s: 
shell working directory:s: 
disable wallpaper:i:1 
disable full window drag:i:1 
disable menu anims:i:1 
disable themes:i:1 
bitmapcachepersistenable:i:1 
winposstr:s:0,3,0,0,800,600 
redirectclipboard:i:1 
redirectposdevices:i:0 
drivestoredirect:s: 
autoreconnection enabled:i:1 
authentication level:i:0 
prompt for credentials:i:0 
negotiate security layer:i:1 
remoteapplicationmode:i:0 
allow desktop composition:i:0 
allow font smoothing:i:0 
disable cursor setting:i:0 
gatewayhostname:s: 
gatewayusagemethod:i:0 
gatewaycredentialssource:i:4 
gatewayprofileusagemethod:i:0 
+0

ブラウザは、このような動作を避けるためにサンドボックス化されています。あなたは一般に、あなたのマシン上でいくつかの実行可能ファイルを呼び出すようなランダムページの訪問を望んでいません。このようなことを可能にすることができれば、いくつかのセキュリティオーバーライドを行う必要があります。それでも、私はそれが予防策なしではお勧めできないと思います。 'wtf.bat'がオーバーライドされたとします。置き換えられたバッチファイルは、ビジネスにとってひどく良いものではないでしょうか? – JayC

+0

ActiveXコントロール(IEのみ)で仮想マシンにアクセスし、HTML5 CanvasとWebSocketsのVNCについて聞いたことがありますが... RDPのようなアクセスが必要な場合は、まだオプションがあります。しかし、ローカルでアクセス可能な実行可能ファイルやバッチファイルを実行する場合は、選択したブラウザでセキュリティホールを開く必要があります。 – JayC

+1

3つの言葉: '' – tripleee

答えて

1

は、セキュリティ上の理由から、あなたは、単に現代の任意のブラウザからリンクを経由して、バッチファイルを実行することはできません。

VBScriptでバッチファイルへの呼び出しをラップし、シェルを使用して実行すると、これが機能します。ただし、IEでこれを許可するには、ActiveXのアクセス許可を開く必要があります。

これを行う方法の例については、hereを参照してください。

11

サーバー側で.RDPファイルを作成し、リモートデスクトップと関連付ける必要があります(表示する代わりに)ブラウザに強制的にダウンロードさせる必要があります。 PHPではこれを次のようにします:

$file = 'screen mode id:i:2 
desktopwidth:i:1436 
desktopheight:i:925 
session bpp:i:16 
auto connect:i:1 
full address:s:emea-orion 
compression:i:1 
keyboardhook:i:2 
audiomode:i:2 
redirectdrives:i:0 
redirectprinters:i:0 
redirectcomports:i:0 
redirectsmartcards:i:0 
displayconnectionbar:i:1 
alternate shell:s: 
shell working directory:s: 
disable wallpaper:i:1 
disable full window drag:i:1 
disable menu anims:i:1 
disable themes:i:1 
bitmapcachepersistenable:i:1 
winposstr:s:0,3,0,0,800,600 
redirectclipboard:i:1 
redirectposdevices:i:0 
drivestoredirect:s: 
autoreconnection enabled:i:1 
authentication level:i:0 
prompt for credentials:i:0 
negotiate security layer:i:1 
remoteapplicationmode:i:0 
allow desktop composition:i:0 
allow font smoothing:i:0 
disable cursor setting:i:0 
gatewayhostname:s: 
gatewayusagemethod:i:0 
gatewaycredentialssource:i:4 
gatewayprofileusagemethod:i:0'; 

header("Content-Disposition: attachment; filename=filename.rdp"); 
header("Content-Type: application/rdp"); 
print $file; 
exit(); 

私は以前この手法を使っていましたが、うまくいきました。ユーザーはリンクをクリックし、保存または開くかどうかを確認するメッセージが表示され、開いている場合は、指定した設定でリモートデスクトップが起動します。 ASP.MVC

public FileResult RDP() 
     { 
      MemoryStream memoryStream = new MemoryStream(); 
      TextWriter tw = new StreamWriter(memoryStream); 
      tw.WriteLine("screen mode id:i:2"); 
      tw.WriteLine("use multimon:i:0"); 
      ///The rest of the file 
      memoryStream.Position = 0; 
      return File(memoryStream, "application/rdp", "conenction.rdp"); 
     } 
+4

私はあなたが気にしないことを願っています。私は.NETの例を追加しました。ヒントは、RDPを使用し、すべての設定を行い、その後、一般タブでオプションと "名前を付けて保存"をクリックします。すべての設定をコピーします。これはURL形式でデータベースや何かを使ってRDPファイルを構築することができるのですばらしいです---そして、本当にこれが答えになるはずです。 – ppumkin

+0

偉大な答え、ありがとう。起動後にファイルを削除してダウンロード領域が乱雑にならないようにする方法はありますか? – Federer

1

特に.NET用

EDIT

例は、私は、ブラウザベースのRDPクライアントを使用することを提案してもよいですか? Linuxの場合はGuacamole FreeRDP-WebConnect、Windowsの場合はMyrtilleからオープンソースの選択肢があります。商用ソフトウェアもあり、2X RDPクライアントやLogMeInなど、より多くの機能(ニーズに依存します)があります。

関連する問題