[部分解决][求助][自动化] 如何快速连接特定的微软远程桌面 (Microsoft Remote Desktop)

在日常工作中, 我时常需要从 macOS 的微软远程桌面连接 Windows 设备.
请问如何自动化这个连接的流程?

设备

  • 客户端: macOS Sonoma (14.2)
  • 远程设备: Windows 11 Pro 23H2 build 22631

配置

  • 远程设备 (Windows 设备)
    • 开启了远程桌面 (Remote Desktop)
    • 固定 IP 192.168.0.50
    • 用户名 myusername
    • 密码 mypassword
  • 本地设备 (macOS)
    • 安装了 “微软远程桌面客户端” (简称 RDP client)
    • 在 远程桌面客户端中添加了 192.168.0.50 Windows 设备
    • 在客户端软件中保存了 远程设备 (Windows) 的用户名和密码.

目前的流程 (需要被自动化)

  • 启动 RDP client
  • 搜索 192.168.0.50 这台设备
  • 点击连接

目标效果

  • 自动化上述流程
  • 我已有的自动化工具
    • 快捷指令
    • Keyboard Maestro
    • Alfred
    • Automator

我的尝试 (未成功)

我尝试用 URI scheme 实现快速连接但是并未解决问题.

RDP client 支持两种 URI scheme: 参考

  • ms-rd:xxxxxx
  • rdp://IP_Address

我在终端中运行下面任意一条命令都能打开 RDP client, 但无法直接连接 192.168.0.50

open 'ms-rd:url=192.168.0.50'
open 'rdp://192.168.0.50'

可能有用的参考资料

附录

如何安装 Microsoft Remote Desktop Client

  1. 打开 Microsoft Remote Desktop 应用;
  2. 右键需要创建快捷方式的远程桌面,在弹出菜单中选择「export」;
  3. 选择文件夹保存 rdp 文件。

在指定文件夹打开刚刚保存的 rdp 文件就会一下子打开 MRD 并连接相应的远程桌面了。

这个 rdp 文件也可以直接用文本编辑器来编辑相应参数,详见:远程桌面服务支持的 RDP 属性 | Microsoft Learn

1 Like

谢谢你的回复.

我尝试了你介绍的方法.

配置

  • 需要被导出的设备是 192.168.0.50
  • 在 RDP Client (远程桌面客户端) 中, 我保存了登录 192.168.0.50 需要的信息
    • 用户名 myusername
    • 密码 mypassword

操作

  • 导出 (Export) 192.168.0.50 时, 软件提示: 「为了安全, 导出文件不含密码」
  • 导出后, 我得到了一个名为 192.168.0.50.rdp 的文件
  • 在终端中前往这个文件所在的文件夹
  • 运行 open 192.168.0.50.rdp

结果

  • RDP Client 自动启动, 并尝试连接 192.168.0.50 设备.
  • 接着, RDP Client 弹窗所要登录信息:
    • 弹窗预填写了用户名 myusername
    • 但是密码为空, 也就是说
      • 没有调用 已保存在 RDP client 中的 myusername 的密码
      • 需要我自己填写 mypassword

综上

你介绍的方法

  • 节省了打开 RDP Client 和寻找对应设备的时间.
  • 增加了输入密码的时间.

后续疑问

那么, 有没有什么办法, 避免输入密码呢? 同时尽量兼顾安全性呢?


再次感谢

尴尬!我手边没有 Windows 电脑所以没发现这个问题……:fearful:

OK, 没关系.

我再等等看其他的朋友有没有办法.

https://github.com/bugeshan/sth/raw/main/Open%20RDP.alfredworkflow

做了一个简单的 Alfred Workflow 可以实现你想要的效果,安装后需要:

  1. 配置一下﹝X﹞中的变量。
  2. Alfred 输入关键词 ordp 或配置快捷键启动。

原理是通过 rdp:// 打开指定远程桌面,然后模拟键盘操作将密码粘贴到输入框并按下回车键。

安全风险是 Alfred Workflow 的配置是明文的。

主要问题是 Microsoft Remote Desktop for Mac 不能保存凭据,自身无法自动登录——或者看看别的远程桌面应用吧。

1 Like

好嘞, 我试试.

  • 我先试试你的 Alfred Workflow
  • 然手我再模仿你的思路, 看看能不能用 ShortCuts (调用 AppleScript 实现)

安全性方面

  • 我不向公网暴露 Windows 设备 RDP 的 3389 端口 (默认端口)
  • 我登录的 Windows 账户为本地账户, 没有管理员权限, 且没有在其他地方使用相同密码.

因此, 各方面风险评估下来, 明文存储问题不大.


周末愉快.

尝试直接在 MRD 界面操作,发现可行,从这个角度试做了一个: https://github.com/bugeshan/sth/raw/main/Open%20MRD.alfredworkflow

安装后需配置一下﹝X﹞中的连接名称变量。

优点:配置项只有一个;无须在 Alfred Workflow 里保存敏感信息。
注意:MRD 退出时需要保持在 PCs 页签(即远程桌面列表页)。

此外,你贴的那个 Workflow 也是 AS 模拟键盘操作的。

1 Like

Jump Desktop | Remote Desktop | iPad iPhone Android Mac Windows | Collaborative Screen Sharing,试试这个