Skip to content

Microsoft Remote Desktop

Microsoft Remote Desktop 是 Microsoft 的远程桌面客户端。Protocol Launcher 允许你生成 Microsoft Remote Desktop URI scheme 链接。

使用

有两种方式使用这个库:

  • 按需从子路径导入,支持 tree-shaking 并保持 bundle 更小。
  • 从根包完整导入,适合快速脚本或 demo,但会包含所有 app 模块。

生产构建建议使用按需导入;完整导入适合快速脚本或演示。

选择安装方式

按需加载
推荐使用。生产环境优化。
全量导入
使用便捷。适合快速脚本。

说明

本模块只封装 Microsoft 文档记录的 URI 格式:用于启动 Remote Desktop 客户端的 ms-rd:,用于工作区订阅的 ms-rd:subscribe,用于 macOS、iOS 和 Android 客户端的 legacy rdp:// 属性 URL,以及用于 Azure Virtual Desktop 资源的 ms-avd:connect

对于 ms-avd:connect,Microsoft 文档说明已发布资源 ID 与用户 UPN 在 Remote Desktop client 和 Windows App 中都是必填。官方示例将它们序列化为 resourceidusername,因此本模块跟随该 URI 形状。workspaceIdversion 在 Remote Desktop client 中必填,但 Windows App 不支持。可选的 envlaunchpartneridpeeractivityidusemultimon 按官方文档原样暴露。

示例使用保留主机、假 GUID 和占位用户。不要公开真实主机、用户名、资源 ID、工作区 ID、凭据或租户信息。

URL 方法

打开

使用官方记录的 ms-rd: URI 打开 Remote Desktop 客户端。

On-Demand
ts
import { open } from 'protocol-launcher/microsoft-remote-desktop'

const url = open()

订阅

启动 Remote Desktop,并开始工作区订阅流程。

On-Demand
ts
import { subscribe } from 'protocol-launcher/microsoft-remote-desktop'

const url = subscribe({
  url: 'https://rdweb.wvd.microsoft.com',
})

Legacy RDP

使用 Microsoft 为 macOS、iOS 和 Android 客户端列出的 RDP 属性构造 legacy rdp:// URI。

On-Demand
ts
import { legacyRdp } from 'protocol-launcher/microsoft-remote-desktop'

const url = legacyRdp({
  attributes: [
    { name: 'full address', value: '192.0.2.10:3389' },
    { name: 'audiomode', value: 2 },
    { name: 'disable themes', value: 1 },
  ],
})

AVD Connect

连接到 Azure Virtual Desktop 桌面或 RemoteApp 资源。

On-Demand
ts
import { avdConnect } from 'protocol-launcher/microsoft-remote-desktop'

const url = avdConnect({
  workspaceId: '1638e073-63b2-46d8-bd84-ea02ea905467',
  resourceid: 'a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1',
  username: 'user@contoso.com',
  version: 0,
})

生成的 URL

ts
open()
// => 'ms-rd:'

subscribe(subscribeParams)
// => 'ms-rd:subscribe?url=https://rdweb.wvd.microsoft.com'

legacyRdp(legacyRdpParams)
// => 'rdp://full%20address=s:192.0.2.10:3389&audiomode=i:2&disable%20themes=i:1'

avdConnect(avdConnectParams)
// => 'ms-avd:connect?workspaceId=1638e073-63b2-46d8-bd84-ea02ea905467&resourceid=a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1&username=user@contoso.com&version=0'

这些示例不会渲染可直接点击的启动按钮,因为官方 handler 可能会启动 Remote Desktop 订阅或连接流程。

官方文档