44

Is it possible to have a URL that launches a remote desktop session? I realize it may be considered a security vulnerability for some, but the convenience would really save me a lot of time.

I would like to have a hyperlink like: remotedesktop://example.org where clicking on it launches mstsc.exe with the target computer filled in (in this case with example.org).

How best to set this up?

22

You could use a custom URL protocol handler, but this would mean the URLs only worked on computers where you had set this up. I think you'd also need a program to handle taking the URL as remotedesktop://example.org and converting to /v:example.org - although a batch file could probably do this.

See http://msdn.microsoft.com/en-us/library/aa767914(v=vs.85).aspx for more information.

4
  • 9
    For those finding this via searches or other sources, try this. – peelman Feb 7 '15 at 17:08
  • 2
    Something like rdp://example.org – Fernando Kosh Jul 23 '15 at 16:40
  • 2
    This answer is obsolete. LJT's one is up to date, with documentation for the new rdp:// URI scheme. – Lloeki Sep 21 '16 at 9:04
  • The link in this answer is broken. – Cullub Jul 30 '20 at 20:53
10

For Windows 8.1, Windows Server 2012 R2 there is now the Remote Desktop Client URI Scheme Support

Example: rdp://full%20address=s:mypc:3389&audiomode=i:2&disable%20themes=i:1

See here for the details, including the full list of query string parameters.

3
  • 8
    This does not work on my Win10 Pro -- did it ever actually work? – dualed Sep 29 '16 at 12:40
  • 1
    I second that. I've tried multiple combinations and browers. I even put it into Start->Run, but nothing seems to recognize that URL syntax. I don't think they ever completed support for it. – penguin359 Jan 17 '18 at 2:02
  • 4
    This syntax doesn't apply to Windows. It is only available on Mac, iOS, and Android. The Windows RDP client (mstsc.exe) doesn't support any URL command line argument. You have to use something like the JScript solution linked in xorsyst's answer. – Ian Boyd May 3 '18 at 19:25
6

I originally said no, but if you have XP, there is something called the Remote Desktop Web Connection. I initially forgot there was a version for XP.

http://www.microsoft.com/download/en/details.aspx?DisplayLang=en&id=18145

http://support.microsoft.com/kb/284931

3
  • There was something similar for Small Business Server 2003 called Remote Web Workplace, but even then, you could not use a direct URL. en.wikipedia.org/wiki/Microsoft_Remote_Web_Workplace – KCotreau Jul 18 '11 at 17:10
  • Correct me if I'm wrong- this requires me to install/configure something on each server that I would like to connect to? That's going to be prohibitive for me. Thanks though! – optus Jul 18 '11 at 17:47
  • Yes that would be correct. And I agree, it is a pain in the neck...but you asked. :) Support for this was dropped as of Vista. – KCotreau Jul 18 '11 at 23:08
3

I think this would work, and might be the effect you are looking for:

With your local copy of Remote Desktop, set up a connection to the target host. But don't connect; instead, save the connection as an RDP file.

Place that file on your web server. Serve the file with a standard <A HREF='path.to.your/file.rdp'> link. (Note: you may need to update your web server config to "download" this file rather than "serve" it to the web browser.)

The user will probably need to know to run the downloaded file... but it should get their computer to launch RD and initiate a connection to the target host.

2

This might be useful to someone, but here's an Open Source .NET exe that registers the URL handling off to mstsc: https://github.com/richard-green/MstscLauncher

After running that, it will allow you to click links like this: mstsc://your-server/?w=1024&h=768

1

It's not quite what you want, but with Windows Server 2008/R2, you can have your RemoteApps and RDP machines shown on a TS/RD Web Access webpage.

In conjunction with TS/RD Gateway, you could have RDP working through port 443, which is useful in places that block other ports.

TS Web Access

1
  • I sense that he means directly to his computer, like to a home computer. I could be wrong though. – KCotreau Jul 18 '11 at 17:20
1

There is currently no official way

Well, Microsoft SAYS they have two URI schemes for this in Server 2012 R2: ms-rd:// and rdp://

But as of now, 2020-10-16, these do NOT work on my Win10 machine. (Exact version: ver.exe outputs: Microsoft Windows [Version 10.0.19041.572])

So if I run inside cmd.exe either of these:

C:\>start ms-rd://example.com

or

C:\>start rdp://example.com

then nothing good happens. I just get the generic "Pick an app" dialog. (C:\Windows\System32\OpenWith.exe)

And I double checked with URLProtocolView (https://www.nirsoft.net/utils/url_protocol_view.html) and: No. Neither scheme is registered with a handler on my system.

Also these schemes are NOT in the official IANA URI Scheme list (https://www.iana.org/assignments/uri-schemes/uri-schemes.xhtml)

So the answer seems to be: Nope. There is no URI scheme for RDP that you can expect to "just work" on a modern PC. You can MANUALLY make it work, by just manually adding a scheme and a handler. (See other answers.) But that's not the same.

Sources: Microsoft talking about their URI schemes here:

0

Old topic, but Chrome has a remote desktop plugin to do that.

You also have HTML5 based solutions like Guacamole for Linux or Myrtille for Windows.

4
  • Can you clarify what remote desktop plugin you're referring to? – caesay Nov 28 '17 at 1:25
  • That extension is not related to windows RDP whatsoever. It is a completely different protocol requiring you to have this extension configured on both devices. Not sure how this actually answers the question of "How to launch remote desktop from URL". It's also not clear if it would be possible to launch "Chrome Remote Desktop" with a URL either – caesay Nov 30 '17 at 7:18
  • The OP was speaking about mstsc.exe, so RDP indeed; but RDP is just one form of remote desktop; a generic remotedesktop:// link could apply to any remote desktop implementation. An rdp:// link launching mstsc.exe is possible following this solution. There is also the Microsoft remote desktop web access solution. Regarding the chrome remote desktop, it's accessible through the url chrome://apps within chrome. – cedrozor Dec 1 '17 at 14:53
0

Save the following text as C:\Windows\RDP.js:

var destination=(WScript.Arguments(0))
var search='rdp://'
var rdpexe='C:\\WINDOWS\\system32\\mstsc.exe'
//WScript.Echo(destination)
destination=destination.replace(search, '')
destination=destination.replace('/', '')
var ws = new ActiveXObject("WScript.Shell")
//WScript.Echo(rdpexe + " /v:" + destination)
ws.Exec(rdpexe + " /v:" + destination)

Save the next piece as RDP.reg:

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\rdp]
@="URL:Remote Desktop Connection"
"URL Protocol"=""
[HKEY_CLASSES_ROOT\rdp\DefaultIcon]
@="C:\\WINDOWS\\System32\\mstsc.exe"
[HKEY_CLASSES_ROOT\rdp\shell]
[HKEY_CLASSES_ROOT\rdp\shell\open]
[HKEY_CLASSES_ROOT\rdp\shell\open\command]
@="wscript.exe C:\\WINDOWS\\rdp.js %1"

Double click and woalya! When you click something like rdp://192.168.0.1 you will be connected to that server by RDP.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.