Mac 上的 RDP 失败

Mac 上的 RDP 失败

情况:

  • 集合中的 4 台 Windows 2016 RDS 服务器
  • 1 台 Windows 2016 服务器,用作 RD 网关和连接代理。

身份验证通过 NAP/Radius 使用 2FA(Microsoft 多重身份验证)完成。

使用 Windows 的连接工作正常,无论是通过 Internet Explorer 中的 RD Web 访问、自定义 RDP 文件(添加 loadbalanceinfo:s:tsv://MS Terminal Services Plugin.CollectionName)还是通过 RemoteApp 和桌面连接。一切都很好(我的用户喜欢这种灵活性)。

现在 Mac。使用最新版本的 Microsoft 远程桌面应用程序 (https://itunes.apple.com/us/app/microsoft-remote-desktop-10/id1295203466)
远程资源的工作方式。用户会收到多个身份验证提示(针对 RD 网关和 RDS 服务器)。

我找到了这篇文章(https://docs.microsoft.com/en-us/windows-server/remote/remote-desktop-services/clients/remote-desktop-uri) 用于创建 RDP uri。

rdp://promptcredentialonce=i:1&gatewayusagemethod=i:2&Use%20redirection%20server%20name=i:1&full%20address=s:connectionbroker.contoso.com&gatewayhostname=s:rdgw.contoso.com&loadbalanceinfo=s:tsv%3A%2F%2FMS%20Terminal%20Services%20Plugin.1.CollectionName&screen%20mode%20id=i:2

该 uri 在 iOS 上工作正常,单点登录提示,我就能连接。但这在 Mac 上不起作用,在旧版本的 RDP 客户端 (v8) 上出现对等重置端口错误,在新版 MS RDP 客户端 (v10) 上出现拒绝访问错误。

为什么这在 Mac 上不起作用?据我所知,它应该受支持。而且看到 uri 在 iOS 上运行良好,看来没问题。

答案1

显然,可以通过在 RDS Broker 服务器的注册表中添加 DefaultTsvUrl 值来解决此问题。这会将不兼容的 RD 客户端重定向到默认集合。

看:https://blogs.technet.microsoft.com/askperf/2015/06/11/walkthrough-on-session-hint-tsvurl-on-windows-server-2012/

1. Start Registry Editor (Regedit.exe).

2. Locate and then click the following key in the registry:

HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\ClusterSettings

3. On the Edit menu, click Add Value, and then add the following registry value:

Value name: DefaultTsvUrl 
Data type: REG_SZ 
Value data: tsv://<TSVURL>

注意:当您没有升级客户端选项时,建议将此作为替代/解决方法。它有以下注意事项需要注意:

仅当客户端无法理解 RDP 文件中发送的 tsvurl(来自远程应用程序)并因此无法将 tsvurl 呈现给连接代理时,才会读取此注册表项。每当这样的客户端出现时,DefaultTsvUrl 都会将其发送到注册表值中指定的单个集合。DefaultTsvUrl 只能指向一个集合,因此您可能需要为不兼容的客户端规划和创建一个包含其所有所需应用程序的集合。此注册表中没有定义多个集合的规定,因此如果您想在多个集合上使用不兼容的客户端,则是不可能的。如果您更改该集合,您还必须更改 defauDefaultTsvUrl lttsvurl 注册表值。此注册表只是 tsvurls 的一种解决方法,如果客户端与 remoteapps 本身不兼容,它将不起作用。它仅向那些能够在 Windows 2008/R2 中访问远程应用程序但无法通过集合访问它们的客户端提供一种解决方法,如“2012 年连接方式的改变 - 会话提示/TSVUrl”部分所述。

所以这也适用于 Windows 2016。为什么 Mac 的新 RDP 客户端似乎忽略了 loadbalanceinfo=s:信息未知,应该支持它。

另外,这并不是真正的解决方案,而是一种变通方法,但就目前而言已经足够好了。

相关内容