Вопрос: Как RDP с веб-страницы


Я пытаюсь открыть rdp-сеанс на сервере с моей веб-страницы.

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

Файл .bat имеет следующую строку: mstsc / v: emea-cirrus

Случается, что файл просто отображается в моем браузере Chrome в виде текстового файла. Так что веб-страница просто загружается и буквально говорит «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

6


источник


Ответы:


По соображениям безопасности вы не можете просто запустить пакетный файл по ссылке из любого современного браузера.

Вы можете заставить это работать, если вы завершите вызов пакетного файла в VBScript и запустите его через оболочку. Тем не менее, вам нужно будет открыть свои разрешения ActiveX, чтобы IE разрешил это.

Пример того, как это сделать, см. Вот ,


1



Вы можете создать файл .RDP на стороне сервера, который Windows должна связать с удаленным рабочим столом, и заставить браузер загружать его (вместо его отображения). В 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();

Раньше я использовал эту технику, и она хорошо работала. Пользователь будет щелкать по ссылке, будет предложено сохранить или открыть, и если они нажмут, то Remote Desktop запустится с указанными настройками.

РЕДАКТИРОВАТЬ

Пример .NET в частности 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");
        }

11



Могу ли я предложить использовать клиент RDP на основе браузера? В настоящее время у вас есть выбор с открытым исходным кодом, от гуакамоле  FreeRDP-WebConnect, если у вас есть серверы Linux или Myrtille  для Windows. Есть также коммерческое программное обеспечение с большим количеством функций (это зависит от ваших потребностей), таких как 2X RDP-клиент или LogMeIn.


2