Есть ли способ создать гиперссылку, которая будет вызывать подключение удаленного рабочего стола к машине Windows?
Не как таковое. Вы можете сохранить файл RDP на своем сервере и предложить ссылку на него, если ваши типы MIME правильно настроены на сервере, который он должен загружать, а затем при открытии пользователем должен открывать RDP с правильными настройками.
Вы не сможете просто запустить исполняемый файл (в данном случае mstsc.exe) прямо из браузера, это будет довольно большой дырой в безопасности, пользователю нужно будет что-то загрузить и сознательно открыть его.
Как упомянул Сэм, просто сохраните файл RDP на своем сервере или напишите что-нибудь, что будет генерировать файл RDP для вас.
Тип MIME, который вам нужно отправить: "приложение / x-rdp".
Я не совсем уверен, что вам нужно. Другим вариантом может быть использование клиента RDP Java-апплета. Для экзаменаторов (http://properjavardp.sourceforge.net/)
Есть обходной путь, если он нужен только для личного использования. Вы можете создать собственный дескриптор протокола и использовать его через свой HTML. Вот хороший пример.
Я нашел этот полезный пост Джеймса Клементса, в котором описывается техника, которая, кажется, работает: http://www.jjclements.co.uk/2010/02/21/rdp-hyperlink/ Это требует, чтобы каждый человек, который собирается щелкнуть гиперссылку rdp: //, запускал пакетный файл, соответствующим образом настраивая свою систему. Если это соответствует вашим потребностям, продолжайте читать.
Джеймс предоставляет небольшой файл .BAT, который устанавливает ассоциацию rdp: //, так что после установки ассоциации вы можете щелкнуть гиперссылки на rdp: // myserver или rdp: //myserver.myhost.com, и он запустит MSTSC. exe, подключающийся к указанному серверу. (Stack Overflow не позволит мне вставить эти гиперссылки в этот пост, что достаточно справедливо, но если вы контролируете HTML, вы можете это сделать.)
Центральная часть командного файла создает две вещи:
1) Файл Javascript в известном месте (C:\Windows\hyperlink-rdp.js
) со следующим содержанием:
var server=(WScript.Arguments(0))
var prefix='rdp://'
var app='C:\\WINDOWS\\system32\\mstsc.exe'
server=server.replace(prefix, '')
server=server.replace('/', '')
var shell = new ActiveXObject("WScript.Shell")
shell.Exec(app + " /v:" + server)
2) Несколько настроек реестра для связывания ссылок rdp: // с этим скриптом. Они представлены в виде команд, которые можно запустить из командной строки Windows:
reg add "HKCR\rdp" /f /v "" /t REG_SZ /d "URL:Remote Desktop Connection"
reg add "HKCR\rdp" /f /v "URL Protocol" /t REG_SZ /d ""
reg add "HKCR\rdp\DefaultIcon" /f /v "" /t REG_SZ /d "C:\WINDOWS\System32\mstsc.exe"
reg add "HKCR\rdp\shell\open\command" /f /v "" /t REG_SZ /d "wscript.exe C:\WINDOWS\hyperlink-rdp.js %%1"
Вы можете загрузить и запустить rdp.bat с веб-сайта Джеймса Клементса (и распространить его среди других пользователей), или вы можете просто сохранить его. hyperlink-rdp.js
файл и добавьте эти ключи реестра самостоятельно. Можно также создать файл .reg, содержащий те же настройки. Пакетный файл Джеймса также предоставляет способ удалить ассоциацию, если вы хотите.