2013-04-17 41 views
6

Tôi đang cố gắng mở phiên thứ ba đến một máy chủ từ trang web của tôi.Cách RDP từ trang web

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

Các tập tin .bat chỉ có dòng sau được viết trong đó: mstsc/v: EMEA-ti

gì xảy ra là các tập tin chỉ được hiển thị trong trình duyệt chrome của tôi như là một file văn bản. Vì vậy, trang web chỉ tải và nghĩa đen nói "mstsc/v: emea-cirrus" ở trên cùng. Làm thế nào tôi có thể làm cho nó để khởi động máy khách từ xa máy tính để bàn và đi đến địa chỉ?

Tôi cũng đã thử tạo tệp .rdp và tham chiếu đó là href, cũng chỉ hiển thị dưới dạng văn bản thuần túy. Tệp RDP được tạo bằng cách sử dụng mã sau:

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

Trình duyệt được đặt hộp cát để tránh loại hành vi này mà bạn mong muốn. Bạn thường không muốn truy cập một số trang ngẫu nhiên để gọi một số thực thi trên máy tính của bạn, có khả năng làm ai biết-những gì thiệt hại cho nó. Nếu một cái gì đó như thế này có thể được thực hiện có thể, nó sẽ phải được thực hiện với một số ghi đè an ninh. Và thậm chí sau đó, tôi không nghĩ rằng nó sẽ được khuyến khích mà không có biện pháp phòng ngừa. Giả sử 'wtf.bat' bị ghi đè. Điều gì có thể thay thế một tập tin thực hiện mà sẽ không được terribly tốt cho doanh nghiệp? – JayC

+0

Tôi đã nhìn thấy Máy ảo được truy cập thông qua các điều khiển ActiveX (IE Chỉ) và nghe về VNC với HTML5 Canvas và WebSockets, ... bạn vẫn có các tùy chọn, nếu bạn muốn truy cập giống như RDP, tôi cho là vậy. Nhưng nếu không, chạy một số tập tin thực thi hoặc tập tin thực thi cục bộ có thể truy cập, sẽ yêu cầu mở lỗ hổng bảo mật trong một số trình duyệt bạn chọn. – JayC

+1

Ba từ: '' – tripleee

Trả lời

1

Vì lý do bảo mật, bạn không thể chạy tệp hàng loạt qua liên kết từ bất kỳ trình duyệt hiện đại nào.

Bạn có thể làm điều này để làm việc nếu bạn gói cuộc gọi đến tệp lô trong VBScript và chạy nó qua trình bao. Tuy nhiên, bạn sẽ cần phải mở các điều khoản ActiveX của bạn để có IE cho phép điều này.

Để biết ví dụ về cách thực hiện việc này, hãy xem here.

11

Bạn có thể tạo tệp .RDP ở phía máy chủ, Windows sẽ liên kết với Remote Desktop và buộc trình duyệt tải xuống (thay vì hiển thị nó). Trong PHP, bạn sẽ làm như sau:

$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(); 

Tôi đã sử dụng kỹ thuật này trước và nó hoạt động tốt. Người dùng sẽ nhấp vào liên kết, được nhắc lưu hoặc mở và nếu họ nhấp vào Mở Remote Desktop sẽ khởi chạy với các cài đặt được chỉ định.

EDIT

Ví dụ cho NET nói riêng 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

Tôi hy vọng bạn không phiền, tôi đã thêm một ví dụ cho .NET - Tôi đã làm điều này và nó hoạt động rất tốt. Mẹo là sử dụng RDP, thực hiện tất cả các cài đặt và sau đó trên tab chung, nhấp vào tùy chọn và "Lưu dưới dạng". Sao chép tất cả các cài đặt. Điều này là tuyệt vời như bạn có thể xây dựng các tập tin RDP trên đường đi với hình thức của cơ sở dữ liệu URL hoặc một cái gì đó +1 --- VÀ thực sự, điều này sẽ là câu trả lời! – ppumkin

+0

Câu trả lời hay, cảm ơn.Có cách nào để xóa tệp sau khi khởi chạy để không làm lộn xộn khu vực tải xuống không? – Federer

1

Tôi có thể đề nghị việc sử dụng một trình duyệt dựa RDP client? Bạn có lựa chọn mã nguồn mở ngày nay, từ Guacamole FreeRDP-WebConnect nếu bạn có máy chủ Linux hoặc Myrtille cho Windows. Ngoài ra còn có phần mềm thương mại, với nhiều tính năng hơn (nó phụ thuộc vào nhu cầu của bạn) như 2X RDP client hoặc LogMeIn.

Các vấn đề liên quan