Command-line arguments for “Remote Desktop Connection for Mac”

remote desktop

I haven't been able to find any documentation that would indicate this is possible, but is there any way to pass the hostname you'd like to connect to as a command-line argument to Microsoft's Remote Desktop Connection for Mac?

Some background info for those interested:

I'm a systems administrator, and I'm in the process of moving to a MacBook Air as my primary work computer from a Windows 7 laptop. I frequently use Remote Desktop Client to connect to servers, and in Windows, I use Launchy as my keyboard launcher. I've assigned "rdp" as a keyword so when I invoke Launchy, type "rdp {tab} servername" it passes the text after the tab key as the hostname to mstsc.exe (i.e., mstsc.exe /v:servername). This results in the remote desktop client opening a session to the hostname specified.

Best Answer

There is no command line access for the Microsoft Remote Desktop Client. But the free and most excellent CoRD remote desktop client does handle rdp:// links which would let you call it from a launcher of your choice or even via open on the command line.

The CoRD documentation on github lays out how you can use URL encoded parameters to open full-configured RDP sessions.

rdp:// URL syntax

CoRD handles rdp:// URLs, which you can use from many places inside OS X. Unfortunately, there is no way to extend Finder's "Connect to Server" dialog, which supports launching VNC URLs, so we can't launch CoRD from there. If Apple changes this (or if anybody is aware of a way to extend it) we would love to hear about it.

Saved Servers

If you want to use rdp:// urls with existing saved servers, you can (as of 0.5.3)! Just use the label in place of a hostname:

open rdp://label

New Servers

From a shell (using Terminal):

open rdp://hostname

Additional parameters can be used to start a fully-configured session via the URL:

open rdp://[username[:password]@]hostname[:port][/domain][?parameters]

The following parameters can be set for the session via a query string (as of 0.5.2):

  • screenDepth ### [8|16|24|32]
  • screenWidth <width in pixels>
  • screenHeight <height in pixels>
  • consoleSession ### [true|false|yes|no]
  • fullscreen ### [true|false|yes|no]
  • windowDrags ### [true|false|yes|no]
  • drawDesktop ### [true|false|yes|no]
  • windowAnimation ### [true|false|yes|no]
  • themes ### [true|false|yes|no]
  • fontSmoothing ### [true|false|yes|no]
  • forwardDisks ### [true|false|yes|no]
  • forwardPrinters ### [true|false|yes|no]
  • forwardAudio ### [0|1|2]
    • 0 - Forward Audio to the Local Machine (Currently not used since CoRD doesn't present audio)
    • 1 - Leave Audio at the Remote Machine
    • 2 - Disable Audio at both Machines

Example

open rdp://jsmith:securePassword@hostname.bigco.com/BigCoDomain?screendepth###24\&consoleSession###true\&themes###false\&screenWidth###1280\&screenHeight###800

Note:

When using ampersands (&) from the command line, they have to be escaped with a backslash (). Colons (:) can be used in place of ampersands for the same effect, without needing to be escaped.

Passwords with any special characters in them, @, :, &, etc need to be encoded according to the URL Encoding Format

Command Line Use

CoRD supports the following command line options: -host -port -u -d -p -a [8|16|24|32] set screen depth -width set screen resolution width -height set screen resolution height

Example

/Applications/CoRD.app/Contents/MacOS/CoRD -host example.com -port 3389 -u username

Caveats

Launching CoRD from the command line this way causes a fresh instance of CoRD to be opened. One symptom of this is multiple Dock icons. This overrides or decreases the effectiveness of many of CoRD strong points, including unified sessions, etc. For that reason, we recommend using the open command, and rdp:// URLs to launch sessions.

enter image description here